上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 109 下一页

2019年8月21日

依赖背包变形——hdu4003

摘要: 思维性比较强,代码挺简单的,dp[u][j]表示在u子树下安排j个机器人,让其不回u 注意转移时的初始值 阅读全文

posted @ 2019-08-21 11:19 zsben 阅读(94) 评论(0) 推荐(0) 编辑

依赖背包优化——hdu1561

摘要: 傻逼依赖背包的优化 阅读全文

posted @ 2019-08-21 00:41 zsben 阅读(153) 评论(0) 推荐(0) 编辑

依赖背包变形——poj1947(经典)

摘要: /*这题显然不适用依赖背包的优化,因为不能保证根是必选的,但是可以按照常规依赖背包的思路进行转移,即每次对一个儿子进行C^2的转移 还是树形的背包,dp[u][j]表示u的子树里,切割出一个大小为j的包含u的联通块的代价 那么dp[u][j]按照常规的依赖背包转移即可 初始状态时dp[u][1],切割掉u的所有儿子的代价 注意本题需要特别讨论u是根和非根的情况,即非根的儿子是度数-1,但是最后以... 阅读全文

posted @ 2019-08-21 00:13 zsben 阅读(133) 评论(0) 推荐(0) 编辑

2019年8月20日

依赖背包变形(经典)——poj1155

摘要: 这个题用优化后的依赖背包做难以实现,所以用常规的泛化物品的和来做即可 每个节点的容量定义为这个节点下的叶子结点个数,dp[u][j]用来表示节点u下选取j个物品的最大收益,最后从m-0查询dp[1][i],一旦发现是非负数,i则是答案 需要注意的地方:初始化时将所有的dp[i][0]都赋值为0,一个 阅读全文

posted @ 2019-08-20 19:55 zsben 阅读(111) 评论(0) 推荐(0) 编辑

求最长的任意两元素差不超过M的子段——双指针+单调队列hdu4123

摘要: 换根dp的部分比较容易,难点在于求求最长的任意两元素差不超过M的子段 首先会想到双指针维护(尺取法),如果p1,p2间的max-min>M,那么p1向右移动,直到p1,p2间的max-min>M 这个过程可以用线段树(ST)来询问max,min 另外有一种更强大的方案,因为只要max,min,所以只 阅读全文

posted @ 2019-08-20 16:18 zsben 阅读(212) 评论(0) 推荐(0) 编辑

2019年8月19日

经典换根dp——hdu2196

摘要: 给定一棵边权树,求距离每个点最远的点,输出这个距离 阅读全文

posted @ 2019-08-19 23:40 zsben 阅读(169) 评论(0) 推荐(0) 编辑

依赖背包优化——ural1018,金明的预算方案

摘要: 经典题了,网上博客一大堆O(nCC)的做法,其实是可以将复杂度降到O(nC)的 参考依赖背包优化(泛化物品的并) 根据背包九讲,求两个泛化物品的和复杂度是O(CC)的,所以依赖背包暴力求解的复杂度是O(nCC) 然后对其进行优化,考虑 F[u][j] 用来表示以结点u为根的子树(不包括u)体积为j的 阅读全文

posted @ 2019-08-19 10:32 zsben 阅读(191) 评论(0) 推荐(0) 编辑

2019年8月18日

2019牛客多校第10场

摘要: A:01概率退背包,这是赛后看题解补的,概率的背包和普通的背包有点不太一样,但思想还是差不多的 /* n张牌带权值ai随机洗牌,然后抽牌 将每次抽到的ai累计到sum,可以重复抽牌,也可以停止 如果最后sum在区间(a,b]则胜利,反之失败 问获胜概率 先考虑该问题的弱化版:从n张牌里选出点数总和在 阅读全文

posted @ 2019-08-18 14:07 zsben 阅读(122) 评论(0) 推荐(0) 编辑

2019年8月16日

2019hdu第二场

摘要: 10:签到求n!取模 #include <iostream> #include <iterator> #include <algorithm> typedef long long ll; using namespace std; const ll mod=1e6+3; ll n; ll res[mo 阅读全文

posted @ 2019-08-16 19:53 zsben 阅读(145) 评论(0) 推荐(0) 编辑

欧拉函数+反演——2019hdu多校6588

摘要: $$ 求\sum_{i=1}^{n}(\sqrt[3]i,i)\\ 首先转化一下这个式子,考虑对于i\in[j^3,(j+1)^3 1],\sqrt[3]i=j\\ 所以可以枚举所有j,然后对i\in[j^3,(j+1)^3 1]区间的(i,j)求和即可 那么我们把n分成两部分,分别求和:\\ \s 阅读全文

posted @ 2019-08-16 17:43 zsben 阅读(161) 评论(0) 推荐(0) 编辑

上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 109 下一页

导航