摘要: 最小度限制生成树是指某一个节点的度限制为k的最小生成树。具体的做法去看论文或者黑书吧,这里不详细讲了。理解最小度限制生成树的解法,最主要的就是看懂如何由m度生成树求m+1度生成树,另外要理解无解的情况。今天终于把模板整理出来了,prim那里用了优先队列优化,添加删除边破环那里用的是动态规划。试了试PKU1639这道题,结果正确,但是由于数据水,不知道效率如何。贴出模板: 1 #define maxn 505 2 struct str 3 { 4 int v,c,n; 5 }edge[maxn<<1];//邻接表 6 int head[maxn],cnt; 7 void i... 阅读全文
posted @ 2013-03-17 20:26 McFlurry 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 二分图求最大匹配的最常用算法是匈牙利算法,匈牙利算法的实质与求最大流的思想一致,通过寻求增光路来扩大匹配的个数,这里不详细介绍。König定理,求解二分图非常重要的一个定理,简洁的说就是:二分图中的最大匹配数等于这个图中的最小点覆盖数,因此求最大匹配和最小点覆盖是相辅相成的,证明这里不介绍。要详细看匈牙利算法的介绍到这:http://www.byvoid.com/blog/hungary/要详细理解König定理到这:http://www.matrix67.com/blog/archives/116求解匹配问题的主要障碍是构图,至于怎么构图,这个需要自己做题的积累,我也在摸 阅读全文
posted @ 2013-01-24 00:29 McFlurry 阅读(1685) 评论(0) 推荐(0) 编辑
摘要: 题意:求最长严格上升子序列,并保证该子序列相邻不互质(数据范围:元素个数10^5,元素大小10^5)题目突破点每个数组元素大小不超过10^5,预先将所有数分解质因数O(N*|prime|),或者筛出所有数的因子O(N*lgN)。dp[num[i]]=max(dp[num[i]的因子]+1) (dp[i]为以i为结尾的最长子序列长度)后来瞻仰了CLJ神牛的代码,STL用的很神,就顺手剽窃过来了……View Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include 阅读全文
posted @ 2013-01-22 20:06 McFlurry 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 题目描述越来越多的人开始玩魔方,理工大学的小明从小钟爱魔方, 但是他注意到魔方的颜色太过单调了,有一天他想给魔方的六个面涂色,摆在他面前的有m种颜料,每种颜料从1到m进行编号,题目给出小明想出的所有的涂抹方法(按照上下左右前后的顺序给出)但是小明忽略了一点,如果将魔方旋转他所想到的涂抹方法可能有重复,比如(1,2,3,4,5,6)与(4,3,1,2,5,6)是一种涂色方案输入有一组数据,第一行是n(n<=100000)代表小明想到的方案,下面的n行,每行有六个整数,整数x代表颜料的编号并且(x)满足(x>=1&&x<=1000)输出实际的方案总数示例输入21 阅读全文
posted @ 2013-01-19 21:04 McFlurry 阅读(312) 评论(1) 推荐(0) 编辑
摘要: 刚刚接触斜率优化DP,做了几道比较基础的题,算是稍微有些理解了。斜率优化DP的资料很多,最经典的资料还是周源04年OI论文《浅谈数形结合思想在信息学竞赛中的应用》,初学可以看它,进阶的话可以再去看看杨哲的《凸完全单调性的一个加强与应用》,做题可以搜题解。几点学习心得:1.动态规划时间复杂度:阶段*状态*决策所需时间。阶段*状态一般可视为状态总数,一般状态总数是确定的,我们无法减少它的遍历。那么,斜率优化DP就是在决策前通过维护策略的单调性减少状态数,降低一次决策所需的时间,从而降低时间复杂度。单调性如何维护由如何决策而定。2.斜率优化DP一般需要先写出容易想到的状态转移方程,然后列举2个子状态 阅读全文
posted @ 2012-11-03 22:14 McFlurry 阅读(600) 评论(1) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2018大致题意:在N(1 <= N <= 100,000)块田中,选取一个长度不短于F (1 <= F <= N)的连续区间,使得这个区间的平均值最大。Time Limit:1000MSMemory Limit:30000K样例:Sample Input10 66 4210385941Sample Output6500思路:看这个题目我们很容易想到O(n^2)的DP状态转移方程。但是这个N的范围是10^5,O(n^2)严重超时。此题的一种解法是斜率优化DP(求平均值最大是维护凸包的过程,故存在斜率优化策略) 阅读全文
posted @ 2012-08-04 19:29 McFlurry 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3101大致题意:一个恒星系统中有n(2 ≤n≤ 1 000)颗行星,告诉你它们的运转周期Ti(1 ≤ti≤ 10 000),求他们能够同线的最小周期,表示形式是:分子 分母Time Limit:2000MSMemory Limit:65536K样例:Sample Input36 2 3Sample Output3 1 思路:仔细看图就知道任意两颗行星共线,则 x/t1 - x/t2 = 0 mod (1/2),运行距离差为半个周长的整数倍即可,整理得到(t2-t1)*x/... 阅读全文
posted @ 2012-07-30 11:38 McFlurry 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3071大致题意:共有2^n个球队,采用单向淘汰的形式进行比赛,即1队和2队进行1场比赛,3队和4队进行1场比赛,依次类推,胜者进入下一轮,比赛安排同上。这样只进行N轮就可以确定冠军。现在告诉你第i支球队战胜第j支球队的胜率矩阵,求最可能夺冠的队伍是哪支。Time Limit:1000MSMemory Limit:65536K样例:Sample Input20.0 0.1 0.2 0.30.9 0.0 0.4 0.50.8 0.6 0.0 0.60.7 0.5 0.4 0.0-1Sample Output2思路:题目下方给出的Hin 阅读全文
posted @ 2012-07-30 10:36 McFlurry 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2947大致题意:产品制造者制造型号不同的产品所需的时间是不同的(规定为3~9天),现在已知生产产品的的种数N和工作者的人数M,告诉你每个工作者是从星期几开始工作,星期几结束的(可能隔着n周),这个工作者生产了K件产品,产品的型号分别是多少。根据以上信息,求是否可以求出这N中产品的具体生产所需时间(无解 一解 多解),有解输出解,无解和多解输出相应信息。Time Limit:7000MSMemory Limit:65536K样例:Sample Input2 32 MON THU1 23 MON FRI1 1 23 MON SUN1 阅读全文
posted @ 2012-07-30 09:58 McFlurry 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 大致题意:Bob and Alice为多个长度为n的信息加密,信息的长度可能小于n,不足n的字符补成空格。先给出n,再给出一个长度为n的数组num[]即加密方式,将原字符串下标为i的字符和下标为num[i]的字符交换。然后给出加密次数和要加密的字符串(多组数据),求出加密后的字符串。具体输入输出格式请参照原题。Time Limit : 2000/1000ms (Java/Other)Memory Limit : 20000/10000K (Java/Other)样例:Sample Input10 4 5 3 7 2 8 1 6 10 91Hello Bob1995 CERC00Sample O 阅读全文
posted @ 2012-06-24 21:57 McFlurry 阅读(566) 评论(0) 推荐(0) 编辑