日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codeforce gym 100548H The Problem to Make You Happy

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeforce gym 100548H The Problem to Make You Happy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:

Alice和Bob在一個有向圖上玩游戲,每個人各自操作一個棋子,如果兩個棋子走到一個點上,判定Bob輸;如果輪到任何一方走時,無法移動棋子,判定該方輸

現在Bob先走,要求判斷勝負

?

題解

模型上看是SG問題,但是通常的SG做法需要DP,但是考慮這不是DAG模型,普通的記憶化搜索寫法會RE

正解的DP做法:dp[i][j][k]:i,j是Bob,Alice的位置,k是目前輪到誰走了。

開始將所有顯然的Bob輸的情況加入隊列中,不斷拓展,找到所有的Bob輸的情況。

轉移類似SG

#include<bits/stdc++.h>#define clr(x,y) memset((x),(y),sizeof(x))using namespace std; typedef long long LL;const int maxn=100;struct Node {int x1,x2;int turn; // 0:Bob 1:Alice };int n,m; int a,b; int num[maxn+5][maxn+5]; int deg[maxn+5]; bool mp[maxn+5][maxn+5]; bool dp[maxn+5][maxn+5][2]; queue <Node> Q;void solve(int iCase) {while (!Q.empty()) Q.pop();int u,v;clr(mp,0);clr(deg,0);for (int i=1;i<=m;++i){scanf("%d%d",&u,&v);++deg[u];mp[u][v]=true;}scanf("%d%d",&a,&b);clr(dp,-1);for (int i=1;i<=n;++i){dp[i][i][0]=false;dp[i][i][1]=false;Q.push((Node){i,i,0});Q.push((Node){i,i,1});}for (int i=1;i<=n;++i){if (deg[i]==0){for (int j=1;j<=n;++j){if (i==j) continue;dp[i][j][0]=false;Q.push((Node){i,j,0});}}}clr(num,0);while (!Q.empty()){Node now=Q.front();Q.pop();int x1=now.x1;int x2=now.x2;int turn=now.turn;if (turn==0){for (int i=1;i<=n;++i){if (mp[i][x2]){if (!dp[x1][i][1]) continue;dp[x1][i][1]=false;Q.push((Node){x1,i,1});}}}else{for (int i=1;i<=n;++i){if (mp[i][x1]){++num[i][x2];if (num[i][x2]==deg[i]) //如果從i出發的所有的狀態都是必敗態,那么dp[i][x2][0]本身也是必敗態 {if (!dp[i][x2][0]) continue;dp[i][x2][0]=false;Q.push((Node){i,x2,0});}}}}}if (dp[a][b][0]) printf("Case #%d: Yes\n",iCase);else printf("Case #%d: No\n",iCase); }int main(void) {#ifdef exfreopen ("../in.txt","r",stdin);//freopen ("../out.txt","w",stdout);#endifint T;scanf("%d",&T);for (int i=1;i<=T;++i){scanf("%d%d",&n,&m);solve(i);} }

?

轉載于:https://www.cnblogs.com/123-123/p/5862357.html

總結

以上是生活随笔為你收集整理的codeforce gym 100548H The Problem to Make You Happy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。