题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 浙江

相关推荐

点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务