
优化算法
文章平均质量分 80
lin375691011
呵呵
展开
-
POJ 3258 River Hopscotch
题目大意:给出河的宽度,也就是开始的石头和结束石头之间的距离,再给出n个石头到开始石头的距离,求当移除n个石头中的m块时。两块石头之间的最短距离。解题思路:对最短距离进行二分查找。下面是代码:#include #include using namespace std;int l,n,m,a[50005],L;int main(){ int i,原创 2013-12-31 21:20:35 · 4779 阅读 · 0 评论 -
POJ 1095 Trees Made to Order
题目大意:按照题意将数用二叉树的形式表示出来。将二叉树按照要求形式输出。解题思路:由于有图示,可以轻易看出这个顺序跟卡特兰数列有关。且对于任意一个树的任意子树来说,右子树相当于分针,左子树相当于秒针。也就是说当右子树要变换到下一种状态时,左子树要将它所能变换的状态全变换完才可以。下面是代码:#include #include #include #inclu原创 2014-08-18 08:50:47 · 4656 阅读 · 0 评论 -
POJ 3296 Rinse
果然是杂题,都没有人做啊,这解题报告独一份~~题目大意:Granny有一个罐子里有Vw的酒,她有Vb的雨水来冲这个罐子,由于表面张力的原因当罐子往外倒液体时,会有Vr的液体倒不出来。罐子的容量是Vc。她最多有K次拿水冲洗罐子的机会,每一次它可以取一些雨水倒入罐子充分混合之后在将罐子里的液体倒出来。问怎样冲洗可以使罐子内残留的酒的数量最少。解题思路:对于操原创 2014-08-16 14:41:17 · 4673 阅读 · 0 评论 -
POJ 3318 Matrix Multiplication
题目大意:给出矩阵a,b,c。验证a*b是否等于c。解题思路:三次方复杂度的算法, 正常情况下是过不了的。但是输入优化后可以过。再有就是随机验证。第二种没有啥意思,就记录一下输入优化好了~下面是代码:#include #include #include #include #include #include #include #inc原创 2014-08-12 18:08:50 · 4767 阅读 · 1 评论 -
POJ 2454 Jersey Politics
题目大意:给出3*k个数,将它们分成三分,每份k个数,要求至少有两份之和大于500*k。解题思路:随机化,对于这道题来说这是个好想法~将所有数从大到小排序后将前2*k个数再随机调整直到满足条件。下面是代码:#include #include #include #include #include #include #include #includ原创 2014-08-13 13:28:24 · 5058 阅读 · 0 评论 -
POJ 3301 Texas Trip
题目大意:在二维坐标系中给出一些点,求能覆盖他们的最小正方形的面积(正方形的边不一定平行坐标轴)解题思路:对于一个点,若坐标轴旋转a度(弧度制),那么X‘=X*cos(a)-Y*sin(a);Y'=Y*cos(a)+X*sin(a);对于角度三分,对于正方形面积是个单峰函数在【0,pi】。有最小值。下面是代码: #include #include原创 2014-08-12 10:30:44 · 5150 阅读 · 0 评论 -
POJ 3070 Fibonacci
做完上一个题之后顿时觉得原创 2014-08-11 15:55:27 · 3879 阅读 · 0 评论 -
POJ 3150 Cellular Automaton
矩阵的题就是这么伤脑筋啊~~ sad……题目大意:一个环上有n个数,定义一种操作将它和它距离小于d的数加和再模m。每次操作刷新所有数。问k次之后都将变成什么数?解题思路:矩阵快速幂加速递推。按照正常思路第i次操作是基于第i-1次操作完成的,也就是说要完成第i次操作需要先完成第i-1次。但是用于矩阵之后可以直接推出第i次与第一次之间是什么关系。这个矩原创 2014-08-11 15:34:36 · 4988 阅读 · 0 评论 -
POJ 2976 Dropping tests
01分数规划,看了这个博客好像懂了一点~链接在此题目大意:给出n个a和b,让选出n-k个使得(sigma a【i】)/(sigma b【i】)最大解题思路:按照01分数规划的正常思路构造D数组,二分求值。下面是代码:#include #include #include #include #include #include #inclu原创 2014-08-11 09:48:46 · 4848 阅读 · 0 评论 -
POJ 1054 The Troublesome Frog
这能叫DP???hash+枚举点+剪枝就能过??题目大意:当青蛙经过农田时的痕迹是一条直线。农田里的植物就在这个农田的二维坐标系的整数格点上。如果某只青蛙经过农田,也就是某条直线穿过农田。那么那条直线经过的所有的整数格点上的植物会都被破坏掉。现在给出所有被破坏的植物的位置,问那只青蛙破坏的最多。本题有几个地方需要注意:1、当某条直线上某个点没被破坏,这条直线原创 2014-05-23 16:59:38 · 7722 阅读 · 0 评论 -
POJ 3273 Monthly Expense
题目大意:给N个数,分成M组,每一组最大值的最小值是多少。每一组数必须是连续的。解题思路:用二分法来穷举最大值,求最小。是针对最大值的上界和下界二分。下面是代码:#include int a[100005],n,m;bool does(int xian){ int sum=0,cnt=1; for(int i=0; i<n; i++原创 2013-12-30 20:07:35 · 4433 阅读 · 0 评论 -
POJ 1905 Expanding Rods
题目大意:一根某种材料做的直杆被夹在两面墙之间,当他受热时长度会变长,就会因两面墙的挤压而向上隆起。长度变化函数为 L'=(1+n*C)*L,给定L,C,n,求向上拱起的高度H。解题思路:这是两个最关键的计算式,可以手动计算出来。然后对h进行二分查找。注意:1、误差分析,我的是到了10^-5才可以了。2、注意输出。最好用cout。下面是代码:原创 2014-01-01 21:53:32 · 5395 阅读 · 0 评论 -
POJ 3122 Pie
题目大意:给出n个pie的直径,有f+1个人,如果给每人分的大小相同(形状可以不同),每个人可以分多少。要求是分出来的每一份必须出自同一个pie,也就是说当pie大小为3,2,1,只能分出两个大小为2的份,剩下两个要扔掉。解题思路:对每一个人分的大小进行二分查找,注意输出要用cout。下面是代码:#include const double pi=3.14159原创 2014-01-02 17:56:14 · 5772 阅读 · 0 评论 -
Codeforces Beta Round #2 C. Commentator problem
模拟退火果然是一个很高端的东西,思路神马的完全搞不懂啊~题目大意:给出三个圆,求一点到这三个圆的两切线的夹角相等。解题思路:对于这个题来说还是有多种思路的 ,不过都搞不明白~~ /害羞脸用模拟退火来解也是一件赌人品的事,因为退火的过程设计的不合理,WA妥妥的。其实我也是学了一点点,还不是太明白啊~~下面是代码:#i原创 2014-11-02 15:36:02 · 4793 阅读 · 0 评论