上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 61 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3998思路:可以用n*log(n)的做法求出最长上升子序列,然后删除原数组中的这些数,再求最长上升子序列(如果长度减小,则直接退出)。View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 #define MAXN 22222 8 阅读全文
posted @ 2013-05-05 09:05 ihge2k 阅读(2109) 评论(2) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4143思路:变方程为n=(y-x)*(y+x)(n>0);令y-x=i,于是有y+x=n/i;从而联立不等式可求的x=(n/i-i)/2(x>0);从而i<=sqrt(n);枚举即可。View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 7 int main(){ 阅读全文
posted @ 2013-05-05 08:07 ihge2k 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3416思路:就是先求一次最短路,最短路我们可以用spfa求出,然后取出最短路上的边建图,容量为1,最后一次SAP即可求出所有路径条数。View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<queue> 5 #include<vector> 6 using namespace std; 7 #define MAXM 333333 8 # 阅读全文
posted @ 2013-05-05 00:16 ihge2k 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3277思路:3081差不多,就是多了每个女孩可以另外选任意k个不喜欢的,将每个女孩u分为u1,u2,若u喜欢v则加一条u1到v的边 否则加一条u2到v的边,令加u1到u2的容量为k的边;然后不知道为什么,wa了一下午,哎。。。以下是wa代码,不知道哪儿有bug.View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define 阅读全文
posted @ 2013-05-04 17:19 ihge2k 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3081思路设源点为0,汇点为2*n+1,对没吵过架的女生和男生连容量为1的边(这里要用到并查集,每个女生的朋友也可以和该男生连边),然后就是源点与女生连边,容量为mid(0<=mid<=n),男生与汇点也连容量为mid的边(这里的mid即为为每个男孩和女孩找到了k个不同的伴侣,说明游戏可以进行k轮,附上链接:http://blog.csdn.net/qq564690377/article/details/7857983),然后就是二分搜索了。View Code 1 #include< 阅读全文
posted @ 2013-05-04 11:30 ihge2k 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.codeforces.com/problemset/problem/5/C思路:如果str[i]=='(',那么入栈;否则如果str[i]==')',我们用一个p来保存i的位置;否则就是str[i]==')'的情况了,首先当然是出栈了,然后就是求更新。具体就代码:View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<stack> 5 using namespac 阅读全文
posted @ 2013-05-03 23:39 ihge2k 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3605题意:世界末日即将到来,地球上有n个人想转移到m个外星球,但是不同的人适应于不同的星球(1个人可适应多个星球),每个外星球都有人数的限制,现在给你星球人数的上限。还有每个人不同的适应情况。问,能否安排所有的人都成功地转移到外星球上。思路:多重匹配。。。View Code 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MAXN 100000+10 6 #define MAXM 12 7 8 bool map.. 阅读全文
posted @ 2013-05-03 21:09 ihge2k 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553哎,不说了,打表过的,直接搜的话,TLE..View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 //#define MAXN 22 6 //int num[MAXN]; 7 //bool mark[3][MAXN]; 8 int sum,n; 9 10 /*11 void dfs(int row){12 if(row==n 阅读全文
posted @ 2013-05-03 19:27 ihge2k 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2883思路:这道和hdu 3572很像http://www.cnblogs.com/wally/archive/2013/05/03/3056726.html。这里也一样,我们选择0为源点,然后源点和顾客之间连边,容量为(ni*ti),然后,将每个顾客要求的时间区间看成点(由于区间可能覆盖),因此,我们可以直接对起始时间和结束时间进行排序,然后去掉重复的。这样假设我们排序后得到count个时间点,这样就有2*count-1个时间区间了,于是我们可以对每个时间区间与汇点连边,此时汇点为(vt=n+co 阅读全文
posted @ 2013-05-03 17:31 ihge2k 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3572先说一下题意:有M个机器,有N个任务。每个任务必须在Si 或者以后开始做,在Ei 或者之前完成,完成任务必须处理Pi 个时间单位。其中,每个任务可以在任意(空闲)机器上工作,每个机器的同一时刻只能工作一个任务,每个任务在同一时刻只能被一个机器工作,而且任务做到一半可以打断,拿去其他机器做。问:能否在规定时间内把任务做完。思路:建图是关键,我们可以选择0为源点,然后源点与每个任务都连一条边,容量为要求的天数p,然后每个任务都与相应的时间点连边,边容量为1,最后我们要确定汇点,汇点可以取vt=ma 阅读全文
posted @ 2013-05-03 15:12 ihge2k 阅读(1553) 评论(0) 推荐(0) 编辑
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 61 下一页