社区讨论

第10个点半玄学WA求助必互关

P1190[NOIP 2010 普及组] 接水问题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhjt3lw6
此快照首次捕获于
2025/11/04 08:04
4 个月前
此快照最后确认于
2025/11/04 08:04
4 个月前
查看原帖
rt
CPP
#include<bits/stdc++.h>
using namespace std;
int main() {
	int n,m;
	cin>>n>>m;
	vector<int> vc;
	int a[n];
	for(int i=0;i<n;i++) {
		cin>>a[i];
		vc.push_back(i);
	}
	if(n<=m) {
		int mx=0;
		for(int i=0;i<n;i++) mx=max(mx,a[i]);
		cout<<mx;
		return 0;
	}
	for(int i=0;i<m;i++) vc.erase(vc.begin());
	int q[m];
	for(int i=0;i<m;i++) q[i]=i;
	int sum[m];
	memset(sum,0,sizeof(sum));
	int t=0;
	int tot=1;
	while(tot) {
		t++; 
		for(int i=0;i<m;i++) {
			if(q[i]!=-1) {
				if(sum[i]+1==a[q[i]]) {
					sum[i]=0;
					if(vc.size()) {
						q[i]=vc[0];
						vc.erase(vc.begin());
					} 
					else q[i]=-1;
				}
				else sum[i]++;
			}
		}
		tot=0;
		for(int i=0;i<m;i++) tot+=sum[i];
	}
	cout<<t;
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...