dp
Stupid_Computer
美丽
展开
-
最短路线
题目描述 – 某城市的街道是一个很规整的矩形网格(见下图),有 M 条南北向的纵街,N 条东西向的横街。现要从西南角的 A 走到东北角的 B,最短的走法共有多少种?输入 – 输入文件 Sline.in,一行,两个数 M,N,其中 2 < M,N <= 800输出 – 输出文件 sline.out,输出最短路的走法总数.样例输入 7 5样例输出 210数据范围限...原创 2018-03-10 15:28:02 · 961 阅读 · 0 评论 -
【NOIP2017提高组 day1】逛公园
题目题解– 首先要在图上跑一遍最短路是肯定的(spfa或迪杰斯特拉)接着就是怎么算答案了我们可以先建一个反图(方便从终点跑回起点)设f[i][j]:从起点跑到i号节点时,与目前的最短路相差j的长度时的方案数所以说我们怎么从f[i][j]转移到f[a][b]呢(i,a由一条长为w的路径相连)可以推出:j-b=d[a]+w-d[i]即:b=j+d[i]-d[a]-w因为直接递推...原创 2018-09-24 13:34:57 · 324 阅读 · 0 评论 -
【NOIP2017提高组 day2】宝藏
题目题解–这道题不是最小生成树这道题不是最小生成树这道题不是最小生成树因为修路的代价与它里起点的距离有关,又因为最后的路径一定组成了一棵树所以我们可以一层层的dp设f[i][s]:到第i层时,已经连上的集合为s的最优解转移f[i][s|S]=min(f[i-1][s]+D[s][S]*(i-1))(D[s][S]是把这两个没有交集的集合相连的最小代价)D是可以由d预处理出来...原创 2018-09-24 13:47:04 · 972 阅读 · 1 评论 -
【NOIP2018模拟赛2018.10.3】track
题目题解–开始以为和那个什么括号匹配一样,结果要判重,(QAQ)结果其实是kmp字符串匹配设f[i][j][k]:第i秒时,高度为j,成功匹配第k个的方案数状态转移方程式if(s[k]==‘U’){f[i+1][j+1][k+1]=(f[i+1][j+1][k+1]+f[i][j][k])%mod;if(j)f[i+1][j-1][fail[k][0]]=(f[i+1][j-...原创 2018-10-03 20:18:44 · 241 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.17】黑暗之魂(darksoul)
题目题解— 是蛮难的一道题但是可以发现是一棵树上套上了一个环用tarjan处理出来之后可以把环取出来处理不在环上的点可以用树的直径求答案在环上可以用单调队列优化dp处理两个点穿越环的最长值代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath&g...原创 2018-10-17 21:43:42 · 506 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.17】传送门 (portal)
题目题解— 是树形dp呢f[x][0]:x和x的子树里没有传送门f[x][1]:x和x的子树里有传送门如果不用传送门的话,每条边跑两次(下去,回来)用了的话,就只需要跑下去就行了,但是如果儿子用了传送门,还是要跑回来的(因为只能同时存在两个传送门)代码#include<iostream>#include<cstdio>#include<c...原创 2018-10-17 21:51:41 · 406 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.18】轻功
题目Description题目背景: 尊者神高达进入了基三的世界,作为一个 mmorpg 做任务是必不可少的,然而跑地图却令人十分不爽。好在基三可以使用轻功,但是尊者神高达有些手残,他决定用梅花桩练习轻功。 题目描述: 一共有 n 个木桩,要求从起点(0)开始,经过所有梅花桩,恰好到达终点 n,尊者神高达一共会 k 种门派的轻功,不同门派的轻功经过的梅花桩数不同,花费时间也不同。但是尊者神高达...原创 2018-10-18 21:22:16 · 347 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.20】死宅与陷阱
题目题解–是一道典型的期望dp题一个点的权值要对答案产生贡献,那么那条路径必须要经过它所以我们反向建图(避免重复遍历),dp每个点经过它的概率把概率最大的t的点追加陷阱(贪心),除了s最后加起来就好了代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cm...原创 2018-10-21 10:30:07 · 233 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.20】抗议
题目题解–明显是dpf[x]:把前x个奶牛按要求分组的方案数发现要能够转移,j的前缀和要小于等于i的前缀和(j+1~i区间和为非负)并且要把满足情况的全部加起来所以可以离散化后用线段树组维护代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>...原创 2018-10-21 10:35:17 · 314 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.22】cards
题目题解– 这道题只有特判呢对于前8个点,发现只要x从小到大排好序,就是求y的lca,用树桩数组优化一下就好了对于后2个点,只要pi<=pj,我们就连一条有向边,最后跑最长路就好代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#i...原创 2018-10-23 20:42:34 · 222 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.22】pets
题目题解–emmm首先判断是否合法就是判断是否存在环拓扑排序搞定然后就是dp算出kf[i][j]:表示处理到1中i位置,2中j位置时的最大插入数我们只需要预处理j是否可以插在i后面就可以n^2转移了代码#include<iostream>#include<cstdio>#include<cstdlib>#include<c...原创 2018-10-23 21:14:59 · 197 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.23】数
题目数(number)题目描述】给定正整数n,m,问有多少个正整数满足:(1)不含前导0;(2)是m的倍数;(3)可以通过重排列各个数位得到n。【输入数据】一行两个整数n,m。【输出数据】一行一个整数表示答案对998244353取模的结果。【样例输入】1 1【样例输出】1【数据范围】对于20%的数据,n<10^10。对于50%的数据,n<10^16,m...原创 2018-10-23 21:24:16 · 411 阅读 · 0 评论 -
【NOIP2018模拟赛2018.8.28】plutotree
题目题解–部份分就是最短路嘛就不讲了 正解树上dp,233333 首先要知道我们dp的目的是什么: 对于一条u到v的路径,一共就只有四种情况 1. u和v直接跑lca 2. u跑到最近的叶子,跳到根,再跑到v 3. v跑到最近的叶子,跳到根,再跑到u 4. u和v都跑到最近的叶子,在根相遇 现在我们就发现了,要得到答案,首先要快速的求到每个节点到最近叶子的路径长度和...原创 2018-08-28 17:14:20 · 254 阅读 · 0 评论 -
【NOIP2018模拟赛2018.8.28】 chance
题目题解–这道题是dp哟,是不是很隐秘 就是因为最后的答案是对k%及其以上的所有情况的概率求和 如果直接dfs肯定会爆 所以可以考虑dp 设f[i][j]:在前i个袋子里取出j个目标球的概率 转移很简单: f[i][j+1]+=f[i-1][j]*p[i]; f[i][j]+=f[i-1][j]*(1-p[i]); n^2时间复杂度剩下的就是怎么快速求出每个袋子...原创 2018-08-28 17:02:49 · 283 阅读 · 0 评论 -
jzoj 5778 没有硝烟的战争
题目题解–好像有点玄学?这是本蒟蒻做的第一道博弈题耶,没办法,就当是定义记呗 首先对于A,如果B的选择里有必败策略,那A必胜(黑人???) 那就分为相邻两动物是同种还是异种 如果是同种,如果B有必胜策略,A也必胜 如果是异种,如果B有必败策略,A也必胜然后把换拆成链 用后缀和优化一下 再把从i开始看成是先报一个0就好 答案就是f[i][0]那就直接dp啦 啦...原创 2018-08-08 21:10:23 · 361 阅读 · 0 评论 -
还是采药问题
总时间限制: 1000ms 内存限制: 65536kB描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一...原创 2018-03-16 21:16:48 · 243 阅读 · 0 评论 -
接苹果
题目描述 很少有人知道奶牛爱吃苹果。农夫约翰的农场上有两棵苹果树(编号为 1 和 2),每一棵树上都长满了苹果。奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果从树上落下。但是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果)。贝茜吃东西很快,所以她接到苹果后仅用几秒钟就能吃完。 每一分钟,两棵苹果树其中的一棵会掉落一个苹果。贝茜已经过了足够的训练,只要站在树下就...原创 2018-03-13 21:16:49 · 571 阅读 · 0 评论 -
C. 【NOIP2012普及组真题】 摆花
题解:– 这种看起来像是搜索,但实现起来一定会爆的题目,多半都是用dp了啦 – 先定义dp[i][j] 表示在处理到第i种花,且已经摆了j盆花时的方案数 – 所以说:状态转移方程就出来了代码:#include<iostream>#include<cmath>#include<cstring>#include<cstdio>...原创 2018-03-12 21:33:24 · 526 阅读 · 0 评论 -
【NOIP2018 模拟赛day1】塔
【题目描述】 小 A 想搭一个体积不超过 m 的塔, 他有各种大小的立方积木, 比 如边长为 a 的积木, 体积为 a^3, 现在小 A 需要你给一个 X, 每次小 A 会用一个体积不超过 X 的最大积木, 依次到搭好为止, 现在他想最 大化积木的个数, 同时在积木个数最大的情况下使 X 最大。【输入描述】 一行一个数 m【输出描述】 一行两个数, 最多积木...原创 2018-04-06 18:48:20 · 475 阅读 · 0 评论 -
【NOIP2006 提高组】金明的预算方案
题目题解–这是一个美丽的01背包问题,只不过物品与物品之间加上了一点点的联系 –f[i] 表示剩下 i 元时所取到的最大价值 –本来对于每个物品,有取或不取两种方式 而现在,我们把没有附件的主件也用一个花费为0,价值也为0的附件处理 然后只对主件分析:这样,对每个主件都有5种决策1.只选主件 2.选主件和1号 3.选主件和2号 4.选主件和1号,2号 5.都...原创 2018-05-27 19:26:17 · 377 阅读 · 0 评论 -
【NOIP2006 提高组】能量项链
题目题解–首先,我们肯定要把每个珠子都聚合是能量最大的基础,而对于这个环,我们可以在输入时预处理成这个样子: 1 2 3 4 1 2 3 然后发现这个环的所有遍历情况变得很简单:以某个为起点,向后取n个就行 –现在,我们只要发现这是个区间dp就行了 f[i][j]表示,从 i 到 j 这个区间内聚合的最大值 对于每个区间,可以从中间的 k 点断开变为两段小的,加上聚合这...原创 2018-05-27 19:42:10 · 229 阅读 · 0 评论 -
小 P 的牧场
题目题目描述 小 P 在 MC 里有 n 个牧场,自西向东呈一字形排列(自西向东用 1⋯n1⋯n 编号),于是他就烦恼了:为了控制这 n 个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定...原创 2018-06-18 11:56:31 · 291 阅读 · 0 评论 -
子集的子集
题目题目描述 有一个大小为 n 的集合 S, 它由 n 个二元组 (i,xi)(1≤i≤n) 组成。 我们用序列 si(1≤i≤n)来表示属于 S 的二元组 (i,si)。 定义一个集合的权值为属于它的二元组的 x 之积, 即二元组的第二个元素之积。 求出 S 的所有非空子集的所有非空子集的权值之和。输入 输入包含两行。第一行输入一个正整数 n, 第二行输入 n 个正整数,表示 s1∼...原创 2018-06-18 20:18:39 · 353 阅读 · 0 评论 -
【NOIP 模拟赛2018 】Reverse
题目题解–这道题看起来很玄学,其实就是贪心啦 我们只需要找到已经满足条件的最长序列,然后再把其他的都改变就行啦 就是求最长不下降子序列 时间复杂度O(nlogn)代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#inc...原创 2018-07-16 19:25:55 · 380 阅读 · 0 评论 -
jzoj 5788 餐馆
题目题解–本宝看出来了呀,开出是树形dp来了呀,就是没写过,bl了呀(QAQ) 至少明白了树形dp就是从儿子转移到父亲的合并呀 这道题就是设嘛: f[i][j][0] : 以i为树根的子树,花费j分钟,并且回到i节点的最大价值 f[i][j][1] : 以i为树根的子树,花费j分钟,并且不需要回到i节点的最大价值然后转移就有三种情况: 1. 从已经跑过的子树,并回到根...原创 2018-08-09 22:09:37 · 127 阅读 · 0 评论 -
jzoj 5770 可爱精灵宝贝
题目题解–是区间dp(好像dfs加神秘玄学剪枝也能过?) 首先,我们可以发现这个人走过的位置是一个区域,而且区域内部的精灵要么被抓,要么消失了(总之就是与以后的转移没有关系) 所以,状态定义: f[l][r][t] :当这个人走过区间[l,r],且目前在l处,时间为t时的最大分值 注意,l,r的左右位置要根据大小自己判断然后我们又发现,现在这个人只有两种方法:左走或右走...原创 2018-08-07 11:07:37 · 196 阅读 · 0 评论 -
【NOIP2018模拟赛2018.10.23】木门道伏击战
题目木门道伏击战(intercept)【题目背景】建兴九年(231 年), 诸葛亮率蜀军四出祁山。 司马懿料到蜀军粮草不济,坚守不出,又命人在成都散布诸葛亮欲谋反的谣言。刘禅听信谣言,下旨命诸葛亮退兵。在退兵时,魏军决定追击,诸葛亮早有防备,在木门道伏击射杀张郃。【题目描述】 小 W 在《三国演义》中读到四出祁山,对此非常感兴趣,在思考这场战役时 他想出了一个问题。 小 W 认为蜀军共...原创 2018-10-23 21:27:31 · 303 阅读 · 0 评论