HD1281棋盘游戏(匹配+好题)
生活随笔
收集整理的這篇文章主要介紹了
HD1281棋盘游戏(匹配+好题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
棋盤游戲
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3372????Accepted Submission(s): 1997
所以現在Gardon想讓小希來解決一個更難的問題,在保證盡量多的“車”的前提下,棋盤里有些格子是可以避開的,也就是說,不在這些格子上放車,也可以保證盡量多的“車”被放下。但是某些格子若不放子,就無法保證放盡量多的“車”,這樣的格子被稱做重要點。Gardon想讓小希算出有多少個這樣的重要點,你能解決這個問題么?
?
Input 輸入包含多組數據,第一行有三個數N、M、K(1<N,M<=100 1<K<=N*M),表示了棋盤的高、寬,以及可以放“車”的格子數目。接下來的K行描述了所有格子的信息:每行兩個數X和Y,表示了這個格子在棋盤中的位置。
?
Output 對輸入的每組數據,按照如下格式輸出:Board T have C important blanks for L chessmen.
?
Sample Input 3 3 4 1 2 1 3 2 1 2 2 3 3 4 1 2 1 3 2 1 3 2?
Sample Output Board 1 have 0 important blanks for 2 chessmen. Board 2 have 3 important blanks for 3 chessmen.?
Author Gardon?
Source 杭電ACM集訓隊訓練賽(VI) 題意:如果某點不放棋子就不能達到最大的車;問這個點數的最大值 把車當成連接x,y的一條邊,求最多能放車的數量就是求最大匹配,即x,y的匹配 求不重要的點就暴力枚舉每一個點,假設沒有這個點看看匹配數是否變小,這個做法很好 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 const int MAX = 110; 7 int g[MAX][MAX],vis[MAX],link[MAX]; 8 int n,m,k; 9 int findx(int x) 10 { 11 for(int i = 1; i <= m; i++) //注意這是m 12 { 13 if(g[x][i] == 1 && vis[i] == 0) 14 { 15 vis[i] = 1; 16 if(link[i] == 0 || findx(link[i])) 17 { 18 link[i] = x; 19 return true; 20 } 21 } 22 } 23 return false; 24 } 25 int getsum() 26 { 27 int sum = 0; 28 memset(link,0,sizeof(link)); 29 for(int i = 1; i <= n; i++) 30 { 31 memset(vis,0,sizeof(vis)); 32 if(findx(i)) 33 sum++; 34 } 35 return sum; 36 } 37 int main() 38 { 39 int t = 0; 40 while(scanf("%d%d%d", &n,&m,&k) != EOF) 41 { 42 int x,y,sum = 0,important = 0; 43 memset(g,0,sizeof(g)); //初始化 44 for(int i = 0; i < k; i++) 45 { 46 scanf("%d%d",&x,&y); 47 g[x][y] = 1; 48 } 49 sum = getsum(); 50 51 for(int i = 1; i <= n; i++) 52 { 53 for(int j = 1; j <= m; j++) 54 { 55 if(g[i][j]) 56 { 57 g[i][j] = 0; 58 if(sum > getsum()) 59 important++; 60 g[i][j] = 1; 61 } 62 } 63 } 64 printf("Board %d have %d important blanks for %d chessmen.\n",++t,important,sum); 65 } 66 return 0; 67 } View Code?
轉載于:https://www.cnblogs.com/zhaopAC/p/5005293.html
總結
以上是生活随笔為你收集整理的HD1281棋盘游戏(匹配+好题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xcode error: confl
- 下一篇: 谈谈我的编程之路---WAMP(二)