Evanyou Blog 彩带
摘要: "传送门啦" 树形 $ dp $ 入门题,学树形 $ dp $ 的话,可以考虑先做这个题。 $ f[i][j] $ 表示在 $ i $ 这棵子树中选 $ j $ 个苹果的最大价值。 include include include include using namespace std; const 阅读全文
posted @ 2018-10-30 21:25 Stephen_F 阅读(99) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 一个树上dp(树上背包问题),我用了两个方法,都A掉了,这个题数据可能太水了,第一次打错了都A了,不过错误已经改掉了。 第一次就是用的树上背包,差不多是裸题了吧。 $ f[i][j] $ 表示以 $ i $ 为根的子树中选 $ j $ 个的最优方案,因为我们建立了一个虚点,所以最后用了 阅读全文
posted @ 2018-10-30 20:09 Stephen_F 阅读(135) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 这个题就快好多,这次打的代码相比较旅行商的背包,我用了预处理,先处理成01背包,然后直接dp。 没有在dp中进行,可能会快一点吧。 include include include include using namespace std; const int maxn = 1e4 4 + 阅读全文
posted @ 2018-10-30 16:37 Stephen_F 阅读(169) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 这个题不用二进制优化的话根本不行,现学的二进制优化,调了一段时间终于A了,不容易。。 如果不懂二进制优化的话可以去看我那个博客 "二进制优化多重背包" 入口 不想TLE,不要打memset,一定要用快读,听别人说不用快读卡三个点,幸亏我习惯打快读。 include include in 阅读全文
posted @ 2018-10-30 15:57 Stephen_F 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 此题之前先分析两种常见的背包问题,01背包与完全背包 01背包:在M件物品中取出若干件物品放到背包中,每件物品对应的体积v1,v2,v3,....对应的价值为w1,w2,w3,,,,,每件物品之多拿一件。 解决方案 考虑用动态规划的方法来解决,这里的: 阶段是:在前N件物品中,选取若干件物品放入背包 阅读全文
posted @ 2018-10-30 15:41 Stephen_F 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 优化多重背包的方式中两种常用的是单调队列和二进制优化,今天主要学习了一下二进制优化(征集各方资料)。 先说下 01 背包,有n 种不同的物品,每个物品有两个属性 :$ size $ 体积,$ value $ 价值,现在给一个容量为 $ w $ 的背包,问 最多可带走多少价值的物品。 int f[w+ 阅读全文
posted @ 2018-10-30 15:40 Stephen_F 阅读(479) 评论(1) 推荐(1) 编辑
摘要: "传送门啦" 这个题本质就是跑一边最长路,重点就是在怎么建图上。 我们可以把点权放到边权上面,即将每一个边的终点点权当做这个边的边权,这个题里就是将工钱 $ d $ 当做边权。 如果这一条边需要坐飞机才能到达,我们就可以将 $ d w $ 当做边权进行建图,这个时候你发现了什么?? 你会发现 $ d 阅读全文
posted @ 2018-10-30 11:00 Stephen_F 阅读(112) 评论(0) 推荐(0) 编辑
摘要: "传送门啦" 一道广度优先搜索的题目。 结构体含义: struct node{ int x,y,dir;//坐标,方向 int step;//当前步数 }; 方向的标号受上面定义的 $ dx[ ] , dy [ ] $ 数组 的影响 这个题要注意的就是初始化起点的问题。 起点可以向右、右下、下三个方 阅读全文
posted @ 2018-10-30 09:13 Stephen_F 阅读(155) 评论(0) 推荐(0) 编辑