procedure2012
It's not worth it to know you're not worth it!
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要: [关键字]:图论 最短路[题目大意]:哥伦布需要买n件东西,每件东西可以通过如下四种方式:1、金币买。2、用一个玻璃珠(一共有无数个)代替一个金币再用金币买。3、等价的货物交换.4、用便宜的物品换再用金币买。问每件物品的最小价格以及有多少件物品的最小价格=其他两件物品价格和。//==================================================================================[分析]:首先2是必定要用的策略,所以把所有商品的初始价格都减一。然后对于每种4都要另一条边从便宜的到贵的权值是需要多加的金币数。这时有一个源点的问题,到底 阅读全文
posted @ 2012-03-15 00:30 procedure2012 阅读(248) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 差分约束系统[题目大意]:给出n个军营,每个军营最多有ci个士兵,且[ai,bi]之间至少有ki个士兵,问最少有多少士兵。//========================================================================================================[分析]:明显的差分约束系统的题目,网上关于这类题目的总结非常多但是又非常乱各执一词,建议每个人就认准一种讲法仔细研究实践,我推荐这篇博客:http://imlazy.ycool.com/post.1702305.html,讲的非常清楚。看完之后就 阅读全文
posted @ 2012-03-14 17:25 procedure2012 阅读(421) 评论(0) 推荐(0) 编辑
摘要: [关键字]:计算几何 数学[题目大意]:找出给定的简单多边形的核的面积。//====================================================================================[分析]:一个裸的求半平面交的题目,可以用来练习模板。O(n2)算法:每次枚举一条边去切割当前剩余的多边形,直到所有边都枚举过一遍,剩余的多边形面积可以用三角剖分,然后利用叉积求出每个三角形的有向面积累加。[代码]:View Code #include<iostream>#include<cstdio>#include<cs 阅读全文
posted @ 2012-03-13 10:41 procedure2012 阅读(259) 评论(0) 推荐(0) 编辑
摘要: [关键字]:枚举 模拟[题目大意]:n*m的矩阵,每个矩阵有一个舒适值,给出每个学生进入教室的顺序和它需要占的位子数,只能占连续的一个横条最左边的是他的位置,每次都占他的位置舒适度最大。如果不够则只占它自己的位置,输出他所在的位置的坐标,如果一个位置都不剩就输出-1。//========================================================================================================[分析]:枚举每一坐标作为自己的位置然后判断其后是否够,如果够就和当前最优指比较。如果都查完都不够就找到全图中可用的最大 阅读全文
posted @ 2012-03-13 10:33 procedure2012 阅读(294) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论[题目大意]:有n道题只能按顺序回答,每到题只能用两个锦囊中的一个,问最多答上多少道题。//=================================================================================================[分析]:一开始看着和一道POJ上的2-sat很像,想都没就开始做,然后我就2了……又仔细看了一遍2-sat的定义:(1)、有N各组每组只能出一个。(2)、某两个之间不能同时选。这道题明显不符和第一的条件,然后仔细一看居然是二分图!每到题想每个可以解开它的锦囊连边,然后求最大匹配。注意的是这道题是 阅读全文
posted @ 2012-03-12 07:50 procedure2012 阅读(619) 评论(0) 推荐(0) 编辑
摘要: [关键字]:并查集[题目大意]:有n个点m条边,要炸毁k个点,问按炸毁顺序炸毁每个点后有几个联通块。//==============================================================================================[分析]:正着做每次还要删边求联通块复杂度很高。而倒着做先吧所有点都干掉,然后并查集求出联通块个数,每次回复一个点然后合并联通块并更新当前答案,然后倒着输出答案。[代码]:View Code #include<iostream>#include<cstdio>#include< 阅读全文
posted @ 2012-03-12 07:40 procedure2012 阅读(167) 评论(0) 推荐(0) 编辑
摘要: [关键字]:LCA[题目大意]:求出一个集合点使树中三个点到这个点距离总和最小//=============================================================[分析]:无论怎么建树,这个集合点一定在这三个点两两的LCA之间,所以就转化成求LCA的问题,但这道题用离线的tarjan算法十分麻烦,所以就用的LCA转RMQ的在线算法。自我感觉代码写的相当给力:非递归+STL,可惜MLE……[代码]:View Code #include<iostream>#include<cstdio>#include<cstdlib> 阅读全文
posted @ 2012-03-11 23:31 procedure2012 阅读(180) 评论(0) 推荐(0) 编辑
摘要: [关键字]:并查集[题目大意]:有一本记录了n个月的账本,偷看了m次每次记住了一个区间[x,y]的和,问这本帐是否是假账。//===================================================================================[分析]:首先可以想到要判断假账必须是某个区间[l,r]出现了两个值——一个他给的值、一个依靠别的计算出的值。所以可以一个集合里面的点代表的一个连续的区间,如果两个点不在一个集合内就合并,否则判断前y个月的值-前x个月的值是否是给出的值。用g[x]记录x到他所在的集合最后一个点也就是他所在的连续区间最左边的 阅读全文
posted @ 2012-03-11 23:14 procedure2012 阅读(854) 评论(0) 推荐(0) 编辑
摘要: [关键字]:动态规划[题目大意]:说也说不清楚//=====================================================================[分析]:k=1很好做就是求出最长链就行了,因为假如这条链后必定会产生环,而环上的点必定只需走一次,所以答案就是2*(n-1)-s,s就是最长链的长度。k=2时也可以求最长链,由k=1时可以看出最长链的长度就是2*(n-1)需要减掉多少,于是把第一条链所经过的边变成-1再找一遍。第二种方法是动态规划,可以求出一棵树中k条不相交的链最长总合,而这道题中任意两条相交的链(a,b)\(c,d)都可以变成(a,c)( 阅读全文
posted @ 2012-03-11 22:50 procedure2012 阅读(603) 评论(0) 推荐(0) 编辑
摘要: [关键字]:动态规划 斜率优化[题目大意]:自己搜吧//===============================================================================[分析]:首先写出50分的程序,转移方程是:f[i]=max{f[j]+g(s[j]-s[i])}g()就是那个二次函数。然后将方程变形,设两个策略x、y(0<=x<y<i),若y一定比x优:f[x]+g(s[i]-s[x])<f[y]+g(s[i]-s[y])=f[x]+a*(s[i]-s[x])2+b*(s[i]-s[x])+c<f[y]+a*(s[ 阅读全文
posted @ 2012-03-09 17:40 procedure2012 阅读(895) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页