codeforces排名,AC日記——Roma and Poker codeforces 803e

 2023-11-18 阅读 14 评论 0

摘要:803E - Roma and Poker ? 思路: codeforces排名?  贏或輸或者平的序列;   贏和平的差的絕對值不得超過k;   結束時差的絕對值必須為k;   當“?”時可以自己決定為什么狀態; codeforces中文官網?  輸出最終序列或者NO&#

803E - Roma and Poker

?

思路:

codeforces排名?  贏或輸或者平的序列;

  贏和平的差的絕對值不得超過k;

  結束時差的絕對值必須為k;

  當“?”時可以自己決定為什么狀態;

codeforces中文官網?  輸出最終序列或者NO;

  dp(隨便搞搞);

?

來,上代碼:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;int n,k,dp[1005][2005],m;char ch[1005];int main()
{cin>>n>>k;cin>>ch+1;m=k-1;dp[0][m+1]=true;for(int i=1;i<n;i++){if(ch[i]=='W') for(int j=2;j<=m*2+1;j++) dp[i][j]=dp[i-1][j-1];else if(ch[i]=='L') for(int j=1;j<m*2+1;j++) dp[i][j]=dp[i-1][j+1];else if(ch[i]=='D') for(int j=1;j<=m*2+1;j++) dp[i][j]=dp[i-1][j];else for(int j=1;j<=m*2+1;j++) dp[i][j]=(dp[i-1][j-1]||dp[i-1][j]||dp[i-1][j+1]);}if(ch[n]=='W') dp[n][2*m+2]=dp[n-1][2*m+1];else if(ch[n]=='L') dp[n][0]=dp[n-1][1];else if(ch[n]=='D') ;else dp[n][0]=dp[n-1][1],dp[n][m*2+2]=dp[n-1][m*2+1];if(!dp[n][0]&&!dp[n][m*2+2]) cout<<"NO";else{int now;if(dp[n][m*2+2]) now=m*2+2;else now=0;for(int i=n;i>0;i--){if(ch[i]=='L') now++;else if(ch[i]=='W') now--;else if(ch[i]=='D') now=now;else{if(dp[i-1][now+1]) now++,ch[i]='L';else if(dp[i-1][now]) ch[i]='D';else if(dp[i-1][now-1]) now--,ch[i]='W';}}cout<<ch+1;}return 0;
}

?

轉載于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6830549.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/174274.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息