2013年4月23日

HDU2485 Destroying the bus stations (POJ3921)

摘要: 1 /* 2 题意:军队坐bus去机场 n个节点(bus)m条公交通路(单向) 3 每走一条路花时间1 问最少破坏几个结点(是相关联的的路都不能走) 4 使军队在至少k时间不能到达机场。 5 思路:求最小割(等于最大流) 6 建(新)图:弗洛伊德求出任意两点最短路(dist[a][b]) 7 核心判断dist(1,a)+dist(b,n)之和满足小于k 则建边addedge(n+a,b,INF) 8 9 addedge(i,i+n,1);//注意方向 10 11 start=n+1,end=n;totals=n+n; 12 sap();即可。 13 */ 14 #inc... 阅读全文

posted @ 2013-04-23 19:46 ACM_Someone like you 阅读(329) 评论(0) 推荐(0) 编辑

2013年4月22日

hdu 3879 Base Station

摘要: 1 做得还算麻利~ 2 /*最大闭合子图 3 题意:建通讯站。每个通讯站有一定耗费,两个特定的通讯站之间建立通讯以后 4 会有一定收益,问怎样建立通讯站可以使得收益最大 。 5 ——最大权闭合子图->最小割 6 ——url:http://acm.hdu.edu.cn/showproblem.php?pid=3879 7 思路: 8 首先考虑将图转化。 9 即一条通讯线路有一定收益wi(即为正点权),但需要建立两个通讯站, 10 这两个通讯站有一定造价pi(即为负点权)。 11 将通讯线路也变成点,点权为收益,连两条有向只向两个通讯站。 12 原来的通讯站点权不变。则star... 阅读全文

posted @ 2013-04-22 21:19 ACM_Someone like you 阅读(224) 评论(0) 推荐(0) 编辑

hdu 3917 Road construction

摘要: 1 /* 2 hdu 3917 Road constructions 最大权闭合图 3 题意:n个城市 m个工程公司修路 每个公司要交税收 有k个路段 分别花销cost 4 当如果选择了某个公司,该公司负责的所有的路都要选,还有如果1->2的路由公司A负责, 5 2->3的路由公司B负责,那么如果选了公司A就必须选公司B, 求最大的收益 6 建图:税收为正权值、cost为负权值 start连所有公司m end连所有公司m 7 规则要求联系的公司之间为INF eg addedge(a,b,INF);该处解决方法建结构体详见具体代码 8 ... 阅读全文

posted @ 2013-04-22 21:18 ACM_Someone like you 阅读(347) 评论(3) 推荐(0) 编辑

2013年4月18日

Hdu Flow Problem

摘要: View Code 1 #include <iostream> 2 #include<cstdio>//最大流SAP 3 #include<cstring> 4 #include<vector> 5 #include<queue> 6 #include<algorithm> 7 using namespace std; 8 #define min(a,b) ((a)<(b))?(a):(b) 9 #define max(a,b) ((a)>(b))?(a):(b) 10 #define MAXN 200 11 阅读全文

posted @ 2013-04-18 23:03 ACM_Someone like you 阅读(249) 评论(0) 推荐(0) 编辑

Hdu Task Schedule

摘要: View Code 1 #include <iostream>//SAP 最大流应用 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 #include<queue> 6 #include<algorithm> 7 using namespace std; 8 #define min(a,b) ((a)<(b))?(a):(b) 9 #define max(a,b) ((a)>(b))?(a):(b) 10 #define MAXN 1111 阅读全文

posted @ 2013-04-18 23:01 ACM_Someone like you 阅读(252) 评论(0) 推荐(0) 编辑

Hdu Drainage Ditches

摘要: View Code 1 /* 2 http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1001&ojid=0&cid=4456&hide=0 3 4 hdu Drainage Ditches 5 */ 6 #include <iostream> 7 #include<cstdio> 8 #include<cstring> 9 #include<vector> 10 #include<queue> 11 #include<algorith 阅读全文

posted @ 2013-04-18 22:57 ACM_Someone like you 阅读(205) 评论(0) 推荐(0) 编辑

2013年4月17日

uva 10917 - Walk Through the Forest

摘要: 刷刷水 牛人们说 可是我连水都觉得难 只得向牛人们学习 希望日积月累后 我的图论水平也可以自豪地说“ 刷刷水”View Code 1 /* 2 题意:jimmy下班需要穿过一个森林。劳累一天后在森林中漫步是见非常惬意的事, 3 所以他打算每天沿着不同的路径回家,欣赏不同的风景。但他也不想太晚回家, 4 因此他不打算走回头路。换句话说,他只沿(A,B)走, 5 存在一条从B出发回家的路径比所有从A出发回家的路径都短。 6 你的任务是计算一共有多少条不同的回家路径 7 分析: 首先求每个点到家的最短路d[u];//dijkstra 8 深搜 每个点出发有几条可行路径... 阅读全文

posted @ 2013-04-17 19:15 ACM_Someone like you 阅读(225) 评论(0) 推荐(0) 编辑

2013年3月20日

Uva 11078 Open Credit System

摘要: Root :: AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu) :: Chapter 1. Algorithm Design :: Designing Efficient Algorithms :: Examples/*题意:n个整数a1~an-1 找到两个数ai aj 使ai-aj尽可能大(i<j) 直接的想法 找到每组(ai,aj)数对 max比较找到dmax 时间是n^2 超时(M=100000+10)思路:单位时间维护最大值,该题不用输入都结束再处理数据(时间从n降到l) 可以边输入边比较维护 阅读全文

posted @ 2013-03-20 16:11 ACM_Someone like you 阅读(241) 评论(0) 推荐(0) 编辑

2013年3月13日

Uva 11384 - Help is needed for Dexter

摘要: /*题意:一个整数n,计算操作次数,把序列(1~n)每次减去一个(1~n)的正整数最终使整个序列都归为0 计算这个最小的操作次数方法:多在本子上画画,递归公式:f(n)=f(n/2)+1;*///AC 1 #include<stdio.h> 2 #include<string.h> 3 //1 ≤ N ≤ 1,000,000,000 int 足够 4 int f(int n) 5 { 6 int c; 7 if(n==1)c=1; 8 else 9 {10 11 c=f(n/2)+1;12 }13 return c;14 }15... 阅读全文

posted @ 2013-03-13 20:18 ACM_Someone like you 阅读(162) 评论(0) 推荐(0) 编辑

Uva 11300 - Spreading the Wealth

摘要: /*题目: 分金币 围着桌子坐n人 每人有一些金币,大家之间可以相互给钱,最终使每个人拥有相同的金币。求最小移动金币个数。考查数学知识:中位数的距离的问题,见“解题手册”P6页其他没有难度,注意找规律。边学边记吧 谁让我笨了!题型可以举一反三。注意。*///AC 1 #include<stdio.h> 2 #include<string.h> 3 //#include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 const int M=1000010; 7 long long c[ 阅读全文

posted @ 2013-03-13 18:56 ACM_Someone like you 阅读(221) 评论(0) 推荐(0) 编辑

导航