上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 34 下一页
摘要: 题目链接:https://vjudge.net/problem/POJ-1947 题意:给定一棵树,求得到一个结点数为p最少删多少条边。 思路: 明显的树形dp,分组背包。用dp[u][j]表示在结点u的子树上选j个结点最少要删除的边(一定包含结点u),那么dp[u][1]=num[u],num[u 阅读全文
posted @ 2019-09-03 12:14 Frank__Chen 阅读(275) 评论(0) 推荐(0) 编辑
摘要: B. super_log(扩展欧拉函数) 题意:求aa...(b个a)模M的值。 思路:递归用欧拉函数求解,我们知道欧拉降幂公式: 如果讨论b和φ(p)的关系会很麻烦,网上证明了一种精妙的方法,只需重新Mod,就能把a和p当作互素处理,从而统一处理。 要注意的点是:快速幂中取模也要用重写的Mod,最 阅读全文
posted @ 2019-09-01 21:47 Frank__Chen 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 外面吵得风生水起,我校平静地在打比赛,丝毫不知道这次比赛的题目就是把2018银川邀请赛的题照搬过来了QAQ,主办方真牛逼。。 A Maximum(思维) 题意:维护一个栈,支持入栈和出栈操作,并计算每次操作后的栈中最大值,得到最终结果。 思路: 这题真的是,我和hxc轮流做这道题,被坑惨了,一直以为 阅读全文
posted @ 2019-08-31 20:52 Frank__Chen 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/HDU-1011 题意:给定一颗树,每个结点有两个属性,即花费V和价值w,并且选择子结点时必须选择父结点,求总花费不超过m的最大价值。 思路: 树上分组背包。和poj1155相似,对于结点u,先递归计算其子结点v的dp值,然后对于每个子 阅读全文
posted @ 2019-08-30 21:39 Frank__Chen 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/POJ-1155 题意:给定一颗以1为根的边权树,有n个结点,其中m个叶子结点,每个叶子结点有一个价值。要求从m个叶子结点中选最多的结点,费用是从根节点到叶子结点的边权和,价值是所有选中的叶子结点价值和。 思路: 树上分组背包。用dp[ 阅读全文
posted @ 2019-08-30 14:46 Frank__Chen 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 之前学了dp没有好好看一遍背包九讲,今天把背包九讲过一遍,供之后自己看方便一些。 一. 01背包 题目链接:https://www.acwing.com/problem/content/2/ n,V<=1000 这个没什么好说的,加滚动数组,复杂度O(nV),代码如下: #include<cstdi 阅读全文
posted @ 2019-08-29 20:19 Frank__Chen 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/POJ-3162 题意:给一棵树,求每个结点的树上最远距离,记为a[i],然后求最大区间[l,r]满足区间内的max(a[i])-min(a[i])<=M。 思路:第一步向hdoj2196那题一样树形dp求出每个结点的最长距离,我的另一 阅读全文
posted @ 2019-08-28 11:55 Frank__Chen 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/HDU-6446 题意:简化题意后就是求距离和的2*(n-1)!倍。 思路: 简单的树形dp,通过求每条边的贡献计算距离和,边(u,v)的贡献为sz[v]*(n-sz[v])。 另外因为前几天学点分治,看到这题想到可以用点分治求距离和。 阅读全文
posted @ 2019-08-27 20:15 Frank__Chen 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/POJ-2152 题意:给定一颗大小为n的树,在每个结点建消防站花费为w[i],如果某结点没有消防站,只要在它距离<=d[i]的结点有消防站即可,求最小花费。 思路: 好难的树形dp,一点思绪也木有,只能搜题解。 用dp[u][i]表示 阅读全文
posted @ 2019-08-27 16:51 Frank__Chen 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/POJ-2299 题意:给定一个序列,每次只能交换邻近的两个元素,问要交换多少次才能使序列按升序排列。 思路:本质就是求逆序对。我们用归并排序求逆序对,这也是简单的cdq分治。 阅读全文
posted @ 2019-08-27 09:42 Frank__Chen 阅读(256) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 34 下一页