摘要: DP题。状态很容易设,dp[u][0]表示u点子树解决,dp[u][1]表示剩一条链,dp[u][2]表示邻边全炸.转移有点难,看代码解释:#include #include #include #include using namespace std;const int MAX=100005;vec... 阅读全文
posted @ 2015-10-16 21:14 chenjunjie1994 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 枚举所有的最大值盒子里糖果为K的情况,对于位置p,dp[p]为p以前的,第p个操作为抽到不是蓝球里的情况,盒子里最多糖果为k的情况的概率。而到p这个位置,可以有连续最多k-1(因为第k个操作必须为抽到不是蓝球,注意,在第一次操作前桌子上已有一粒糖)个,也可以是0,1,2,3,4....,所以维护这样... 阅读全文
posted @ 2015-10-16 21:08 chenjunjie1994 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 这题的01背包的特点很容易看出来,但其实发现,这个题讲究加入时候的顺序。于是,用贪心排序,如代码中所示,如果A在B前面造成的分数损失更小,则排在前面。。。其实这个我也是猜的。。#include #include #include #include using namespace std;int dp... 阅读全文
posted @ 2015-10-16 21:01 chenjunjie1994 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 这题很简单,把目标位置排序,把目标位置在当前位置前面的往前交换,每次都是贪心选择第一个满足这样要求的数字。#include #include #include #include #include using namespace std;const int MAX=2005;int p1[MAX],p... 阅读全文
posted @ 2015-10-16 20:35 chenjunjie1994 阅读(175) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std;const int MAX=1e5+7;char s1[MAX],s2[MAX],s3[MAX];char getdif(char a,char b){ for(int i=0;in||c... 阅读全文
posted @ 2015-10-16 20:31 chenjunjie1994 阅读(191) 评论(0) 推荐(0) 编辑
摘要: A题。发现是递推可以解决这道题,a[n]=6*a[n-1]-a[n-2]。因为是求和,可以通过一个三维矩阵加速整个计算过程,主要是预处理出2^k时的矩阵,可以通过这道题 1 #include 2 #include 3 #include 4 #include 5 #define LL long... 阅读全文
posted @ 2015-10-16 20:11 chenjunjie1994 阅读(237) 评论(0) 推荐(0) 编辑