摘要: 题目链接 这题真是恶心死我了。 由于位运算每一位互不干涉,所以贪心由大到小选择每一位最优的解,但是要判断一下边界,如果选择该解使得原数>m则不能选择。 代码如下 阅读全文
posted @ 2017-09-28 12:43 Konoset 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接 倍增LCA是个什么蛇皮原理啊,循环完了还得再往上跳一次才能到最近公共祖先 合着我昨天WA两次就是因为这个 建最大生成森林,因为图不一定是联通的,所以不一定是一棵树。这个地方用克鲁斯卡尔就好了 然后给这个森林跑一遍DFS,顺便倍增 然后对于每个询问跑LCA,倍增的时候已经顺便求出了最小边权, 阅读全文
posted @ 2017-09-28 06:23 Konoset 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目链接 真是可恶,被数据范围坑了一把。想要一遍AC的希望破灭了…… 以后大家在做状压DP的时候一定要开long long…… 设f[i][j][k]表示考虑前i行,总共放了j个King,第i行状态为k时的方案数。 先统计出k的二进制位有多少1,记为len,然后枚举o(1~(1<<n)-1),则状态 阅读全文
posted @ 2017-09-27 07:48 Konoset 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 题目链接 (突然高兴 又一次瞬间想出转移方程并一遍A掉!!233333(虽然从二叉苹果树那题开始我就发现我的方程好像跟别人不大一样 (所以这样就可以名正言顺的水题解了 设f[i][j][k]表示考虑FJ出的前i个手势,Bessie变了j次之后,用k表示的手势到目前为止赢了FJ的最多次数。 则考虑FJ 阅读全文
posted @ 2017-09-26 12:41 Konoset 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 题目链接 这题恶心死我了。 bfs染色,统计每个联通块两色的个数,ans加它们的最小值。 阅读全文
posted @ 2017-09-26 10:42 Konoset 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接 区间DP,因为中序遍历的性质:区间[l,r]的任何一个数都可以是该区间的根节点。 更新权值的时候记录区间的根节点,最后DFS输出。 见代码。 阅读全文
posted @ 2017-09-26 07:22 Konoset 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目链接 SovietPower 的题解讲的很清楚。Map或Hash映射后用nlogn求出LIS。这里只给出代码。 阅读全文
posted @ 2017-09-25 09:07 Konoset 阅读(230) 评论(2) 推荐(0) 编辑
摘要: 题目链接 设f[i][j]表示以节点i为根的子树在状态j的情况下的最优解。 j有两种情况。 j=1:i这个根节点有士兵在站岗。 j=0:i这个根节点没有士兵在站岗。 转移方程很好想。 这样子。 意思就是:如果根节点已经有人站岗了,那么它的直接子节点可站可不站。就从子节点的两种状态中选一个小的。 如果 阅读全文
posted @ 2017-09-24 18:49 Konoset 阅读(259) 评论(1) 推荐(0) 编辑
摘要: 题目链接 枚举极大子矩形。详情请见本题题解:I_AM_HelloWord 代码如下 阅读全文
posted @ 2017-09-22 14:39 Konoset 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目链接 设f[i][j][k]表示给以i为根节点的子树分配j条可保留的树枝名额的时候,状态为k时能保留的最多苹果。 k有三种情况。 k=1:我只考虑子树的左叉,不考虑子树的右叉,此时子树能保留的最多的苹果。 k=2:我只考虑子树的右叉,不考虑子树的左叉,此时子树能保留的最多的苹果。 k=3:我既考 阅读全文
posted @ 2017-09-22 11:01 Konoset 阅读(321) 评论(1) 推荐(0) 编辑
摘要: 题目链接 二分最长的电话线长度。把所有大于这个长度的边权设成1,小于等于的设成零,然后跑SPFA看dis[n]是否>k。若>k则l=mid+1 否则r=mid-1 放代码 阅读全文
posted @ 2017-09-21 07:28 Konoset 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 参见ZHT467的题解。 f[i]表示在i这个集合下的最少分组数和当前组最少的容量。 从1到(1<<n)-1枚举i,对于每个i枚举它的子奶牛,然后重载运算符计算。 代码如下 阅读全文
posted @ 2017-09-20 13:49 Konoset 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接 看了题解之后突然发现这题简直是水题。然而不看题解就想不出来。为什么呢? len(x)=log10(x)+1 于是二分寻找x。 阅读全文
posted @ 2017-09-20 10:12 Konoset 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目链接 原题解 代码 阅读全文
posted @ 2017-09-20 09:57 Konoset 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目链接 突发奇想可以用f[i]表示智商和为i的时候情商最大是多少。这样就变成了一个背包问题。 最后更新答案的时候从0到最大背包容量遍历,最后答案是最大的i+f[i]; 但是虽然答案只能从0到m里选,转移过程中是不能丢掉负数体积的。这是因为人家题目只说了要最后的智商和不能小于零,情商和不能小于零,没 阅读全文
posted @ 2017-09-19 20:39 Konoset 阅读(145) 评论(0) 推荐(0) 编辑