hdu 3435 A new Graph Game
http://acm.hdu.edu.cn/showproblem.php?pid=3435
- #include <cstdio>
- #include <iostream>
- #include <cstring>
- #include <queue>
- #include <algorithm>
- #define inf 0x3f3f3f3f
- #define maxn 54444
- using namespace std;
- queue<int>q;
- struct node
- {
- int u,v,next,val,f;
- } p[maxn];
- int head[maxn];
- bool vis[maxn];
- int dis[maxn];
- int pre[maxn];
- int n,m,s,t,e;
- void add(int u,int v,int f,int c)
- {
- p[e].u=u;
- p[e].v=v;
- p[e].f=f;
- p[e].val=c;
- p[e].next=head[u];
- head[u]=e++;
- p[e].u=v;
- p[e].v=u;
- p[e].f=;
- p[e].val=-c;
- p[e].next=head[v];
- head[v]=e++;
- }
- bool spfa()
- {
- int j,k,i;
- while(!q.empty()) q.pop();
- memset(vis,false,sizeof(vis));
- memset(dis,0x3f,sizeof(dis));
- memset(pre,-,sizeof(pre));
- vis[s]=true;
- dis[s]=;
- q.push(s);
- while(!q.empty())
- {
- int u=q.front();
- q.pop();
- vis[u]=false;
- for(j=head[u]; j!=-; j=p[j].next)
- {
- int v=p[j].v;
- if(p[j].f&&dis[u]+p[j].val<dis[v])
- {
- dis[v]=dis[u]+p[j].val;
- pre[v]=j;
- if(!vis[v])
- {
- vis[v]=true;
- q.push(v);
- }
- }
- }
- }
- return dis[t]!=inf;
- }
- int mincost()
- {
- int ret=,u;
- while(spfa())
- {
- u=pre[t];
- ret+=dis[t];
- while(u!=-)
- {
- p[u].f--;
- p[u^].f++;
- u=pre[p[u].u];
- }
- }
- return ret;
- }
- int main()
- {
- int case1;
- scanf("%d",&case1);
- for(int k=; k<=case1; k++)
- {
- e=;
- memset(head,-,sizeof(head));
- scanf("%d%d",&n,&m);
- s=;
- t=*n+;
- for(int i=; i<=m; i++)
- {
- int a,b,c;
- scanf("%d%d%d",&a,&b,&c);
- add(a,b+n,,c);
- add(b,a+n,,c);
- }
- for(int i=; i<=n; i++)
- {
- add(s,i,,);
- add(i+n,t,,);
- }
- int j;
- int ans=mincost();
- for(j=head[s]; j!=-; j=p[j].next)
- if(p[j].f!=) break;
- if(j==-) printf("Case %d: %d\n",k,ans);
- else printf("Case %d: NO\n",k);
- }
- return ;
- }
hdu 3435 A new Graph Game的更多相关文章
- HDU 3435 A new Graph Game(最小费用流:有向环权值最小覆盖)
http://acm.hdu.edu.cn/showproblem.php?pid=3435 题意:有n个点和m条边,你可以删去任意条边,使得所有点在一个哈密顿路径上,路径的权值得最小. 思路: 费用 ...
- 【刷题】HDU 3435 A new Graph Game
Problem Description An undirected graph is a graph in which the nodes are connected by undirected ar ...
- HDU 3435 A new Graph Game(最小费用最大流)&HDU 3488
A new Graph Game Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【HDU 3435】 A new Graph Game (KM|费用流)
A new Graph Game Problem Description An undirected graph is a graph in which the nodes are connected ...
- HDU 6343.Problem L. Graph Theory Homework-数学 (2018 Multi-University Training Contest 4 1012)
6343.Problem L. Graph Theory Homework 官方题解: 一篇写的很好的博客: HDU 6343 - Problem L. Graph Theory Homework - ...
- HDU 3435 KM A new Graph Game
和HDU 3488一样的,只不过要判断一下是否有解. #include <iostream> #include <cstdio> #include <cstring> ...
- HDU 5876:Sparse Graph(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=5876 Sparse Graph Problem Description In graph theory, t ...
- HDU 6343 - Problem L. Graph Theory Homework - [(伪装成图论题的)简单数学题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6343 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU 5631 Rikka with Graph 暴力 并查集
Rikka with Graph 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5631 Description As we know, Rikka ...
随机推荐
- Java Socket 编程指南
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- Number Sequence - HDU 1711(KMP模板题)
题意:给你一个a串和一个b串,问b串是否是a串的子串,如果是返回b在a中最早出现的位置,否则输出-1 分析:应该是最简单的模板题了吧..... 代码如下: ==================== ...
- N - 畅通工程再续 - hdu 1875
Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题 ...
- 中国四大资产管理公司 ACM
一,来历和主要业务 国家于1999年成立了四家直属国务院的资产管理公司:中国东方资产管理公司.中国信达资产管理公司.中国华融资产管理公司.中国长城资产管理公司.由于资产公司一般是是为适应体制转轨或防范 ...
- JS验证手机号码
对于表单的验证是添加信息的时候必不可少的. 下面是基于EasyUI-validatebox拓展的对手机.座机号的验证方法. PhoneAndMobile: { validator: function ...
- Media PLayer
PotPlayer http://potplayer.daum.net/?lang=zh_CN KMPlayer 的原制作者姜龙喜先生(韩国)进入 Daum 公司后的新一代作品.PotPlayer 的 ...
- PHP读取文件内容的三种方式
<?php // 第一种读取方式 header("content-type:text/html;charset=utf-8"); // 文件路径 $fileA = " ...
- windows下Socket链接溢出
最近在windows下使用通过多线程使用jdbc操作数据库,在线程数设置为5,并且每个线程执行完成后Sleep(1000),在这种情况下,竟然还会报错: java.net.SocketExceptio ...
- 《网络编程》先进 I/O
这部分是高级插座 I/O . 设置套接字超时报警,使用更方便的数据传输功能. 套接字 I/O 设置操作超时有三种方法: 转让 alarm 性能,制作时,它指定超时 SIGALRM 信号: 在 sele ...
- Ubuntu12.04下使用valgrind内存测试工具测试Qt程序
1. 到官网http://valgrind.org/downloads/上下载valgrind最新版本: 2. 解压源码,执行./configure;make;make install后,默认安装到/ ...