74分代码求助
查看原帖
74分代码求助
1242139
yinmingyang01楼主2025/7/20 10:48

本人提交记录前部分小数据AC,大数据出现问题。

#include <bits/stdc++.h>//湖边的蚁穴 
#define ll long long
using namespace std;
const ll N=250005;
ll n,c[N],cnt,tmp;
map<ll,bool> vis;
bool flag;
signed main(){
//	freopen("lake.in","r",stdin);
//	freopen("lake.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(ll i=1;i<=n;i++){
		cin>>c[i];
		if(c[i]>0){
			cnt+=c[i];
			vis[c[i]]=1;
		}
	}
	//全零向上取整,连通块向下取整 
	for(ll i=1;i<=n;i++){
		if(c[i]!=0){
			flag=1;
			break;
		}
	}
	if(!flag){
		cout<<n/2;
		return 0;
	}
	ll len=0;
	while(c[len+1]==0){
		len++;
	}
	for(ll i=len+1;i<=n;i++){
		if(vis[c[i]]==0){
			tmp++;
		}else{
			cnt+=ceil(tmp*1.0/2);
			tmp=0;
		}
	}
	cnt+=ceil((tmp+len)*1.0/2);
	cout<<cnt;
	return 0;
}
/*
1.
7
5 6 8 9 7 4 0

40
2.
7
0 0 9 1 6 8 0

26
3.
7
3 0 0 1 0 2 0

9
4.
5
0 7 5 1 0

14
5.
lake.in

50053034257678148
*/

2025/7/20 10:48
加载中...