社区讨论

求条!25pts,玄1管

P14173 【MX-X23-T3】猜拳游戏参与者 3已保存回复 7

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@mhj30ewl
此快照首次捕获于
2025/11/03 19:53
4 个月前
此快照最后确认于
2025/11/03 19:53
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,ans;
string a,b;
int gcd(int x,int y){
	if(!x||!y) return x+y;
	else return gcd(y,x%y);
}
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin>>n>>m>>a>>b;	
	if(m==1){
		int a1=0,a2=0,a3=0;
		char s=b[0];
		for(int i=0;i<n;i++){
			if(a[i]=='R')a1++;
			else if(a[i]=='P')a2++;
			else a3++;
		}
		if(!a1||!a2||!a3) return cout<<0,0;
		for(int i=0;i<n;i++){
			if(a[i]==s) ans++;
		}
		cout<<ans;
		return 0;
	}
	int g=gcd(n,m);
	for(int j=0;j<g;j++){
		int s1=0,s2=0,s6=0;
		int s3=0,s4=0,s5=0;
		for(int i=j;i<n;i+=g){
			if(a[i]=='R')s1++;
			else if(a[i]=='P')s2++;
			else s6++;
		}
		for(int i=j;i<m;i+=g){
			if(b[i]=='R')s3++;
			else if(b[i]=='P')s4++;
			else s5++;
		}
		ans+=min(s1,s3)+min(s2,s4)+min(s6,s5);
	}
	cout<<ans<<"\n";
	return 0;
}

回复

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

正在加载回复...