求助
  • 板块灌水区
  • 楼主Ljh421
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/25 09:47
  • 上次更新2024/8/25 12:18:16
查看原帖
求助
972511
Ljh421楼主2024/8/25 09:47

P2072 宗教问题

std:

#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int a[1010],c[1010],b[30],d[30];
int main(){
	
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	//问题1 
	int cnt=0,sum=0;
	for(int i=1;i<=n;i++){
		if(cnt==0) sum++;
		if(b[a[i]]==0){
			cnt++;
			b[a[i]]=1;
		}
		if(cnt==k){
			memset(b,0,sizeof(b));
			cnt=0;
		}
	}
	if(sum==0) cout<<1<<endl;
	else cout<<sum<<endl;
	//问题2
	sum=n;
	for(int i=1;i<=n;i++){
		if(c[i]==0){
			memset(d,0,sizeof(d));
			cnt=0;
			d[a[i]]=1;
			for(int j=i+1;j<=n;j++){
				if(cnt>=k) break;
				if(d[a[j]]==0){
					cnt++;
					d[a[j]]=1;
				}
				else if(a[i]==a[j]){
					sum--;
					c[j]=1;
				}
			}
		}
	}
	cout<<sum;
	
	return 0;
}

样例对了,但测试全wa

2024/8/25 09:47
加载中...