求挑错
查看原帖
求挑错
179871
Lithium_Chestnut楼主2020/12/7 22:08

模拟代码,样例都过不去,求找错

#include<bits/stdc++.h>
using namespace std;
long long n,m,d[10001],a[1001],ans,f[1001],cnt[10001];
struct node
{
	int p,q=0;
}b[1001];
int gcd(int a,int b)
{
	if(b==0) return a;
	return gcd(b,a%b);
}
int lcm(int a,int b)
{
	return a*b/gcd(a,b);
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>d[i];
		for(int j=1;j<=d[i];j++)
		{
			cin>>a[j];
			if(b[a[j]].p==0 and b[a[j]].q==0)
			{
				cnt[a[j]]++;
				cnt[a[j]]*=d[i];
				b[a[j]].p++;
				b[a[j]].q+=d[i];
			}
			else
			{
				if(cnt[a[j]]==0) cnt[a[j]]++;
				if(d[i]==b[a[j]].q) b[a[j]].p++;
				else
				{
					cnt[a[j]]*=d[i];
					b[a[j]].p=(lcm(b[a[j]].q,cnt[a[j]]))/(b[a[j]].q)+(lcm(b[a[j]].q,cnt[a[j]]))/(cnt[a[j]]);
					b[a[j]].q=lcm(b[a[j]].q,cnt[a[j]]);
				}
			}
		}
		if(d[i]==0)
		{
			ans++;
			for(int k=1;k<=ans;k++) f[k]=i;
		}
	}
	for(int i=1;i<=ans;i++) cout<<b[f[i]].p/gcd(b[f[i]].p,b[f[i]].q)<<" "<<b[f[i]].q/gcd(b[f[i]].p,b[f[i]].q)<<endl;
	return 0;
}
2020/12/7 22:08
加载中...