社区讨论

10pts,求问思路是否正确

P15288「YLLOI-R3-T3」龙卷风参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mljcifai
此快照首次捕获于
2026/02/12 18:58
7 天前
此快照最后确认于
2026/02/12 19:26
7 天前
查看原帖
评测记录https://www.luogu.com.cn/record/262751369
代码CPP
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int t;
int n,m;
int a[N],b[N],f;
int cnt;
int num;
int sum[N];
int ans;
int main(){
	cin>>t;
	while(t--){
		ans=0;
		bool v=0;
		num=0;
		cin>>n>>m;
		memset(sum,0,sizeof(sum));
		for(int i=1;i<=n;i++){
			cin>>a[i];
			if(a[i]!=a[i-1]&&i>1) v=1;
		}
		sort(a+1,a+n+1);
		f=1;
		cnt=0;
		for(int i=2;i<=n+1;i++){
			if(a[i]!=a[i-1]){
				sum[++cnt]=i-f;
				f=i;
			}
		}
		if(!v) ans++;
		for(int i=1;i<n;i++){
			if(n%i==0){
				f=0;
				for(int j=1;j<=cnt;j++) if(sum[j]%(n/i)!=0) f=1;
				if(!f) ans++;
				if(m%n>=i&&!f) num=ans;
			}
		}
		cout<<(m/n)*ans+num<<"\n";
	}
	return 0;
}
求助~~

回复

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

正在加载回复...