贪心70分求救!
  • 板块P1564 膜拜
  • 楼主Kogenta
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/8/25 21:20
  • 上次更新2023/11/4 09:01:22
查看原帖
贪心70分求救!
386890
Kogenta楼主2021/8/25 21:20

看他数据2500,想着可以n^2来做,就干脆对于每个点,扫一遍过去看看能把后面多少个人(设从第 ii 个到第 jj 个)分配到一个机房,下一轮搜索就直接从 j+1j+1 搜起,每一段搜完就 ans+=1ans+=1 ,不知道为什么只有70分... 贴代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=2550;
int a[maxn];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int nxt,ans=0;
	for(int i=1;i<=n;i=nxt){
		int cnt1=0,cnt2=0;
		for(int j=i;j<=n;j++){
			if(a[j]==1)cnt1++;
			else cnt2++;
			if(abs(cnt2-cnt1)<=m||(cnt2==0||cnt1==0)){
				nxt=j+1;
			}
		}
		ans++;
	}
	cout<<ans<<endl;
	return 0;
}
2021/8/25 21:20
加载中...