题2的时间复杂度

#include<bits/stdc++.h>
using namespace std;
double p[200005];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int t;
	cin>>t;
	while(t--){
		memset(p,0,sizeof(p));
		int n,x,y;
		cin>>n>>x>>y;
		for(int i=1;i<=n;i++){
			cin>>p[i];
		}
		if(n==1){
			double x;
			if(p[0]<=y)x=0;
			else x=p[0]-y;
			double y=p[0]*x*0.01;
			cout<<min(x,y)<<endl;
			continue;
		}
		sort(p+1,p+1+n);
		double sum=0;
		double temp1=p[n];
		double temp2=p[n-1];
		double sum3=0;
	    for(int i=1;i<=n-2;i++){
			sum3+=p[i];
		}//先把前n-2个商品加起来
		p[n]=p[n]*x*0.01;
		if(p[n-1]<=y)p[n-1]=0;
		else p[n-1]-=y;
		sum=sum3+p[n]+p[n-1];
		double sum2=0;
		p[n]=temp1,p[n-1]=temp2;
		p[n-1]=p[n-1]*x*0.01;
		if(p[n]<=y)p[n]=0;
		else p[n]-=y;
		sum2=sum3+p[n]+p[n-1];
		cout<<min(sum,sum2)<<endl;
	}
	return 0;
}

我把memset去掉就过了,memset的时间复杂度才o(n)呀,相当于多了一个循环就超时了吗,这题时间复杂度怎么算的,小白不懂

全部评论
t组数据每次memset的时间复杂度是O(n),t最多有1e5组,数组开的大小是2e5,不就超时了嘛
2 回复 分享
发布于 2023-12-02 13:12 浙江

相关推荐

希望各位大哥分享一下自己的看法,对于机器人行业确实不太了解
绝顶但不聪明:如果是机器人相关岗位,优先优必选(专门***器人的),其他岗位选小米
投递小米集团等公司10个岗位 > 牛客解忧铺 牛客在线求职答疑中心
点赞 评论 收藏
分享
研J小政:刚打了个电话给你😁😁😁
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务