10 2014 档案
摘要:迭代每个数对应前面的一个数#include#includeusing namespace std;#define max 88long long s[max], n,p;char *first="T.T^__^";void Init(){ s[0]=7; s[1]=10; int ...
阅读全文
摘要:题意:有两个字符串,每个串由n个字符组成,每个字符有一个价值,Roy每次指定串2中的一个字符,他的得分增加的值为这个字符的价值,然后把两个串中这个字符前面的那部分(包括这个字符)删掉,重复进行这样的操作,求Roy最多能得多少分。dp[i][k] 存的前str1的前i个和str2的前k个能取得最大值,...
阅读全文
摘要:题意 :求被两点分割的凸包面积的较小值 题意已经给出顺时针啦就是求以某一个点 和其他所有相邻点组成三角形的面积,然后sum存和求两点的时候就求出那两点的之间所有三角形的和再减掉0点和那两点的面积一减就是其中一个三角形的面积。
阅读全文
摘要:dfs n以内所有素数的乘积map或set删多余的,有点思维在里面,就写写
阅读全文
摘要:有的时候定义状态,下次来到这个状态的时候,不应该就否决掉下次,因为下次的权值可能比这次更优。。
阅读全文
摘要:状态压缩dp扫雷n×M格子奇数行有雷,给出偶数行的数字,求最少有多少个雷。刚开始觉得状压状态不知道怎么办,因为每行能影响的范围太广,后来展昭说横着来,然后几分钟就a了。这件事请告诉我们看问题要从不同角度来看
阅读全文
摘要:做这个题的时候看了看时间复杂度觉得应该是个贪心或者dp,然后贪心又很快被否定了,因为不具备贪心的一些特性,想了想觉得没什么思路。看了下网上的思路,真是让人拍案叫绝,算法的魅力就在于此啊。。首先dp就意味着要寻找一些状态,我觉得500的状态太多了根本无从保存啊。网上的思路说难也不难,就是只保存下降的序...
阅读全文
摘要:首先要注意核心代码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...
阅读全文
摘要:有的堡垒攻克需要攻克另一个堡垒,形成一个森林,最多攻克m个堡垒,求获得宝物的最大价值。1,以0做根将森林形成树;2,用背包计算当前节点下需要攻克k个堡垒能获得的宝物最大价值,但是注意同一个根节点的情况不能够先后放入背包,否则会有比如1节点选2个和选三个形成了选5个,也就是某些节点重复计算了。所以要在...
阅读全文
摘要:poj2057某公司的上下级关系是一颗树状结构,每个人不能与他的上司同时出现,每个人有一个值,求最大值。这个题需要注意的是如果不保存状态会超时,这似乎也是大部分dp应该注意的事情啊#include#include#include#includeusing namespace std;const in...
阅读全文

浙公网安备 33010602011771号