
dp
jay_zjy1022
人群淹没,你我不及诉说。一声雁过,往事如昨。只望离别不多,再赏盛世烟火。
展开
-
最近的题目总结(树,电话线铺设,我的天)
总结树solution电话线铺设Descriptioninputoutput数据solution我的天solution几天没打博客了,现在记录一下一些比较好的题目。树Description有n个点,它们从1到n进行标号,第i个点的限制为度数不能超过A[i].现在对于每个s (1 <= s <= n),问从这n个点中选出一些点组成大小为s的有标号无根树的方案数。n<=100样例是32 2 1答案3 3 2solution这一类的题目一般都会用到prufer编码,原创 2020-08-05 22:15:33 · 207 阅读 · 0 评论 -
2020.01.18【NOIP提高组】模拟B 组——总结——探险者拉罗
晚上十点十分才a了这题,太难了。Description探险者拉罗最近发现了一个远古的宫殿,该宫殿可以表示为N×N个格子的迷宫,其中有一个格子是入口(用E表示),一个格子是出口(用X表示),有若干个格子是藏金点(用G表示),有若干个格子是障碍物(用#表示),其他格子都有怪物在里面(用-表示)。拉罗由入口开始探险,希望到达尽量多的藏金点,然后由出口离开。当然,障碍物是不能通过的。而且,由于那些远古...原创 2020-01-19 07:47:45 · 167 阅读 · 0 评论 -
2020.01.19【NOIP提高组】模拟B 组——总结——钻石交易
Sample Input4 5 2 7 10 010 00 8100 101 2 51 3 101 4 82 3 42 4 6Sample Output16【样例说明】最优方案为:先从城市1到城市2,在城市2卖掉第一颗钻石,然后到城市4,卖掉第二颗钻石并结束旅行。Data Constraint思路状压dp+spfa,但是会炸,所以考虑优化:#includ...原创 2020-01-19 16:47:40 · 215 阅读 · 0 评论 -
jzoj2020.06.06【NOIP提高组】模拟
好久没打博客了~~~~~趁着改完题就搞一搞(话说最近的题都好淼 )T1 The Bovine ShuffleDescriptionFJ 坚信快乐的牛可以产出更多的牛奶,因此 FJ 在牛棚里安装了一个巨大的迪斯科球并且打算让奶牛们学会跳舞。FJ在许多出名的奶牛舞中选择了一种叫做 Bovine Shuffle 的舞蹈。这种舞蹈由 FJ 的 N 头奶牛组成。N头奶牛以一种顺序排成一行,接着表演数次 shuffle。每次的 shuffle 会将奶牛重新排列。FJ 为了让奶牛们更加快乐,让奶牛们更容易找到重原创 2020-06-06 15:47:57 · 618 阅读 · 4 评论 -
2020.7.15 旅行(jz暑假训练day1)
T2 旅行Description今天又是个神圣的日子,因为LHX教主又要进行一段长途旅行。但是教主毕竟是教主,他喜欢走自己的路,让别人目瞪口呆。为什么呢,因为这条路线高低不平,而且是相当的严重。 但是教主有自己的办法,他会魔法。 这段路可以用一个长度为n的序列A[i]来表示,A[i]表示了第i这段路的高度。毕竟教主即使会使用魔法他还是个人,教主如果想穿越这条路线,他必须从第1段路开始走,走到第n段,从第i段走到第i+1段路需要消耗|A[i+1]-A[i]|点体力。为了节省体力,教主使出了他另一种原创 2020-07-15 21:50:21 · 224 阅读 · 0 评论 -
2020.7.15 排列统计 (jz暑假训练day1)
排列统计Description对于给定的一个长度为n的序列{B[n]},问有多少个序列{A[n]}对于所有的i满足:A[1]~A[i]这i个数字中有恰好B[i]个数字小等于i。其中{A[n]}为1~n的一个排列,即1~n这n个数字在序列A[I]中恰好出现一次。 数据保证了至少有一个排列满足B序列。Input输入的第1行为一个正整数N,表示了序列的长度。 第2行包含N个非负整数,描述了序列{B[i]}。Output输出仅包括一个非负整数,即满足的{A[i]}序列个数。Sample Inp原创 2020-07-16 07:28:27 · 272 阅读 · 0 评论 -
2020.7.16 T4【NOIP2015模拟10.29B组】抓知了(jz暑假训练day2)
Description深海龙王和水葫芦娃放了暑假闲的无聊,一天他们路过一棵树,听到树上的知了叫的好欢啊∼深海龙王准备抓几只知了送给水葫芦娃。他发现面前的这棵树是一颗以1 号节点为根节点的一颗有根树,同时他又发现这颗树上的每一个节点i 上都恰好停有一只蝉,正在愉快的以ai 的响声鸣叫∼深海龙王会从1 号节点起沿着树边一直爬,直到爬到一个叶子节点(请不要在意他怎么下来),在这途中他可以选择一些他经过的蝉并将它们抓起来。但是水葫芦娃希望深海龙王抓的知了能发出越来越响的鸣叫声,起码得要单调不减!Input原创 2020-07-16 20:42:10 · 215 阅读 · 2 评论 -
2020.7.17 T1亲戚(jz暑假训练day3)
DescriptionInputOutputSample Input40 1 1 0Sample Output8Data Constraint赛时25分暴力+5分全排列正解树形dp方程是:f[x]=((f[x] * f[v])%mod*c(min(size[x]-1,size[v]),size[x]-1+size[v]))%mod;x为当前遍历的点,v为儿子,此时的size[x]并没有加上v的节点数。那么这个方程的意思也就是v的子树与前面x遍历过的子树求方案,f[x]*原创 2020-07-17 19:41:53 · 179 阅读 · 2 评论 -
2020.7.18 T3Ocd(jz暑假训练day4)
DescriptionInputOutputSample Input5 6 73 1 4 2 52 4 5 3 12 4 1 3 51 4 3 5 25 2 1 4 3Sample Output4 2 3 5 1Data Constraint正解首先考虑求出逆序对方案数,设f[i][j]表示当前第i位有了j个逆序对时的方案数。由于每个i最多贡献i-1个逆序对,那么f[i][j]+=f[i-1][l](l=max(0,j-i+1)至j)但是这么做就爆了,但是我们只要知道它的原创 2020-07-21 07:56:23 · 182 阅读 · 0 评论 -
2020.7.21 T4WTF交换(jz暑假训练day6)
sum = 0for i = 1 to N index = min{ ID[i], ID[i+1] } sum = sum + A[index] 将数组A往右循环移动R位将数组A内所有的数取相反数for i = 1 to N index = max{ ID[i], ID[i+1] } index = index + 1 sum = sum + A[index] 将数组A往右循环移动R位原创 2020-07-22 15:38:18 · 237 阅读 · 0 评论 -
2020.7.22 T1三色树(jz暑假训练day7)
Description给出一个N个节点的无根树,每条边有非负边权,每个节点有三种颜色:黑,白,灰。一个合法的无根树满足:树中不含有黑色结点或者含有至多一个白色节点。现在希望你通过割掉几条树边,使得形成的若干树合法,并最小化割去树边权值的和。Input第一行一个正整数N,表示树的节点个数。第二行N个整数Ai,表示i号节点的颜色,0 表示黑色,1表示白色,2表示灰色。接下来N-1行每行三个整数Xi Yi Zi,表示一条连接Xi和Yi权为Zi的边。Output输出一个整数表示其最小代价。Sam原创 2020-07-22 19:24:07 · 516 阅读 · 1 评论 -
2020.7.23 T1同余(jz暑假训练day8)
DescriptionInputOutputSample Input21 1 5 10032 0 7 72 2Sample Output160Data Constraint正解dp,对于c,可以发现c在1至p-1之间时方案个数是一样的,所以c为多少不用考虑,只要判断是否为0就行了,然后我们设d[i][1]表示不是0的个数,d[i][0]表示是0的个数,然后d[i][1]=p-1^a[i]-1 d[i][0]就是总共的(p^a[i])-不是0的个数(p-1 ^ a[i]),原创 2020-07-24 15:32:35 · 141 阅读 · 0 评论