【HDU】 1281 棋盘游戏
来源:互联网 发布:南师大图书馆数据库 编辑:程序博客网 时间:2024/06/05 19:59
棋盘游戏
题目链接
- 棋盘游戏
题目大意
现在给你一个棋盘,只有部分格子可以放棋子——车。相同行列上的车会相互攻击。在这个棋盘上现在放棋子,我们想放的最多,同时我们定义一种格子叫“重要点“。就是说只要这个格子不放棋子,我们就不能放置最多的棋子(讲的有点绕,总之看题目数据就懂了)。
题解
首先我们想放的最多,我们可以用2分图解决,(x,y)上若可以放置棋子,我们就从x向y建立一条边,最后跑一遍匈牙利就行了。至于这个点是不是重要点,枚举即可…
代码
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int n,m,k,x[10005],y[10005],g[105][105],link[105];bool vis[105],flag[105];bool dfs(int u){ for (int i=1;i<=k;i++) { int v=y[i]; if (!vis[v] && g[u][v]) { vis[v]=1; if (!link[v] || dfs(link[v])) { link[v]=u; return 1; } } } return 0;}int main(){ int Case=1; while (scanf("%d%d%d",&n,&m,&k)!=EOF) { memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); memset(g,0,sizeof(g)); memset(link,0,sizeof(link)); memset(flag,0,sizeof(flag)); for (int i=1;i<=k;i++) { scanf("%d%d",&x[i],&y[i]); g[x[i]][y[i]]=1; } int ans=0,cnt=0; for (int i=1;i<=k;i++) { int u=x[i]; memset(vis,0,sizeof(vis)); if (!flag[u] && dfs(u)) ans++; flag[u]=1; } for (int i=1;i<=k;i++) { memset(flag,0,sizeof(flag)); memset(link,0,sizeof(link)); int u=x[i],v=y[i]; g[u][v]=0; //solve int num=0; for (int j=1;j<=k;j++) { memset(vis,0,sizeof(vis)); if (!flag[x[j]] && dfs(x[j])) num++; flag[x[j]]=1; } g[u][v]=1; if (num<ans) cnt++; } printf("Board %d have %d important blanks for %d chessmen.\n",Case++,cnt,ans); } return 0;}
0 0
- hdu 1281棋盘游戏
- hdu 1281 棋盘游戏
- HDU 1281 棋盘游戏
- hdu 1281 棋盘游戏
- hdu 1281 棋盘游戏
- HDU 1281 棋盘游戏
- hdu 1281 棋盘游戏
- HDU 1281 棋盘游戏
- HDU 1281 棋盘游戏
- hdu 1281 棋盘游戏
- hdu 1281 棋盘游戏
- hdu 1281 棋盘游戏
- 【HDU】 1281 棋盘游戏
- HDU 1281:棋盘游戏
- HDU 1281 棋盘游戏
- HDU 1281 棋盘游戏
- HDU - 1281 棋盘游戏
- hdu 1281 棋盘游戏
- MSSQL之八 实现视图与索引
- 微信公众号第三方平台开发PYTHON教程 PART 1
- bzoj 1571~1755 简单题解 (持续更新)
- 通过使用evercookie技术实现设备指纹
- android studio for android learning (三) 我的第一个APP
- 【HDU】 1281 棋盘游戏
- MODULE_DEVICE_TABLE的用法
- 微信公众号第三方平台开发PYTHON教程 PART 2
- sqlserver中user是一个关键字,不要用它作为表名,否则会报错。
- 【Unity】今天研究了一个基于Blur的文字外发光(文字描边)shader
- POJ 3132 Sum of Different Primes
- 反射详解
- 将源目录中的文件按照前缀分发到不同目录中的算法设计及C代码实现
- 微信公众号第三方平台开发PYTHON教程 PART 3