上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: 题意 :求被两点分割的凸包面积的较小值 题意已经给出顺时针啦就是求以某一个点 和其他所有相邻点组成三角形的面积,然后sum存和求两点的时候就求出那两点的之间所有三角形的和再减掉0点和那两点的面积一减就是其中一个三角形的面积。 阅读全文
posted @ 2014-10-22 19:20 icodefive 阅读(211) 评论(0) 推荐(0) 编辑
摘要: dfs n以内所有素数的乘积map或set删多余的,有点思维在里面,就写写 阅读全文
posted @ 2014-10-22 19:15 icodefive 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 有的时候定义状态,下次来到这个状态的时候,不应该就否决掉下次,因为下次的权值可能比这次更优。。 阅读全文
posted @ 2014-10-22 08:41 icodefive 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 状态压缩dp扫雷n×M格子奇数行有雷,给出偶数行的数字,求最少有多少个雷。刚开始觉得状压状态不知道怎么办,因为每行能影响的范围太广,后来展昭说横着来,然后几分钟就a了。这件事请告诉我们看问题要从不同角度来看 阅读全文
posted @ 2014-10-22 08:28 icodefive 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 做这个题的时候看了看时间复杂度觉得应该是个贪心或者dp,然后贪心又很快被否定了,因为不具备贪心的一些特性,想了想觉得没什么思路。看了下网上的思路,真是让人拍案叫绝,算法的魅力就在于此啊。。首先dp就意味着要寻找一些状态,我觉得500的状态太多了根本无从保存啊。网上的思路说难也不难,就是只保存下降的序... 阅读全文
posted @ 2014-10-20 18:59 icodefive 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 首先要注意核心代码int find(int i){ if(i == fa[i]) return fa[i]; int tt = find(fa[i]); num[i] = (num[i] + num[fa[i]]) % 3; fa[i] = tt; return fa[i];}不能写成int fin... 阅读全文
posted @ 2014-10-17 23:15 icodefive 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 有的堡垒攻克需要攻克另一个堡垒,形成一个森林,最多攻克m个堡垒,求获得宝物的最大价值。1,以0做根将森林形成树;2,用背包计算当前节点下需要攻克k个堡垒能获得的宝物最大价值,但是注意同一个根节点的情况不能够先后放入背包,否则会有比如1节点选2个和选三个形成了选5个,也就是某些节点重复计算了。所以要在... 阅读全文
posted @ 2014-10-17 13:23 icodefive 阅读(213) 评论(0) 推荐(0) 编辑
摘要: poj2057某公司的上下级关系是一颗树状结构,每个人不能与他的上司同时出现,每个人有一个值,求最大值。这个题需要注意的是如果不保存状态会超时,这似乎也是大部分dp应该注意的事情啊#include#include#include#includeusing namespace std;const in... 阅读全文
posted @ 2014-10-16 19:44 icodefive 阅读(169) 评论(0) 推荐(0) 编辑
摘要: dfs(int x, int k){if(x == k+1)....for(int i = x+1; i <= n; i++)dfs(i, k);}可以保证不重复,枚举出来的东西按顺序排 阅读全文
posted @ 2014-07-25 09:48 icodefive 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 原来写题目的时候对vis标记都是先memset在标记,今天看见一个只要每次对T值修改,然后看看等不等于T就可以了,真好! 阅读全文
posted @ 2014-07-25 09:27 icodefive 阅读(232) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页