Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)

https://atcoder.jp/contests/abc201
D - Game in Momotetsu World
由题意可得为一道博弈论题
通过思考可得为博弈DP
其中通过分析可得
所以每次状态转移都得转换视角
当两个人无限聪明时
转换视角后 看到的就是相对于上一个人落后的大小
所以取f[i-1][j]=min(-f[i][j]-a[i][j])
f[i][j-1]=min(-f[i][j]-a[i][j])其中要从后往前dp
如果从前往后dp会受到后继性影响

点击查看代码
int a[2005][2005],dp[2005][2005];
void solve(){
    int h,w;cin>>h>>w;
    for(int i=1;i<=h;i++)for(int j=1;j<=w;j++){
        char ch;cin>>ch;
        a[i][j]=ch=='+'?1:0;
        dp[i][j]=1e18;
    }
    dp[h][w]=0;
    for(int i=h;i>=1;i--)for(int j=w;j>=1;j--){
        dp[i-1][j]=min(-(dp[i][j]+a[i][j]),dp[i-1][j]);
        dp[i][j-1]=min(-(dp[i][j]+a[i][j]),dp[i][j-1]);
    }
    if(dp[1][1] > 0)
        puts("Aoki");
    if(dp[1][1] < 0)
        puts("Takahashi");
    if(dp[1][1] == 0)
        puts("Draw");

}
F - Insertion Sort 感觉洛谷的题解很不错类 (懒得写(bushi
posted @ 2024-04-05 00:21  archer2333  阅读(39)  评论(0)    收藏  举报