当前位置: 代码迷 >> 综合 >> 749 C. Voting codeforces
  详细解决方案

749 C. Voting codeforces

热度:0   发布时间:2024-01-10 18:44:46.0

思路:每一个D(或者R)都会消除下一个离他最近的R(D),以此类推,谁先为0,谁就输,根据这个进行模拟。

 #include<bits/stdc++.h>using namespace std;char str[200005];bool visit[200005];int main(){int n,numd=0,numr=0;scanf("%d%s",&n,str);for(int i=0;i<n;i++){if(str[i]=='D')numd++;elsenumr++;}int flagd=0,flagr=0;while(numd&&numr){for(int i=0;i<n;i++){if(str[i]=='D'&&!visit[i]){if(!flagr)flagd++;else{visit[i]=1;flagr--;numd--;}}if(str[i]=='R'&&!visit[i]){if(!flagd)flagr++;else{visit[i]=1;flagd--;numr--;}}}}if(numd) cout<<'D'<<endl;else cout<<'R'<<endl;return 0;}