随笔分类 -  noip模拟赛

摘要:【问题背景】zhx 帮他妹子做数学题。【问题描述】求: 如 N=3, M=3, 这个值为 1^1+1^2+1^3+2^1+2^2+2^3+3^1+3^2+3^3=56。 【输入格式】仅一行, 包含两个数 N 和 M.【输出格式】仅一行, 包含所求的答案 mod 10^9 + 7 的值。【样例输入】3 阅读全文
posted @ 2017-10-26 08:27 zbtrs 阅读(197) 评论(0) 推荐(0)
摘要:【问题描述】在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张N个点、M条边的无向连通图,而度数大于2的点至多有1个。兔子们决定把其中K个兔子窝 阅读全文
posted @ 2017-10-25 22:00 zbtrs 阅读(349) 评论(0) 推荐(0)
摘要:【问题描述】 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号。对1<i<n的i来说,i号的左边是i+1号,右边是i-1号。1号的右边是n号,n号的左边是1号。每一轮游戏时,主持人指定一个还坐在桌边的人(假设是i号),让他向坐在他左边的人(假设是j号)发起挑战,如 阅读全文
posted @ 2017-10-25 19:21 zbtrs 阅读(331) 评论(0) 推荐(0)
摘要:【问题描述】商店里出售n种不同品种的花。为了装饰桌面,你打算买m支花回家。你觉得放两支一样的花很难看,因此每种品种的花最多买1支。求总共有几种不同的买花的方案?答案可能很大,输出答案mod p的值。 【输入格式】一行3个整数n,m,p,意义如题所述。 【输出格式】一个整数,表示买花的方案数。 【输入 阅读全文
posted @ 2017-10-25 15:31 zbtrs 阅读(205) 评论(0) 推荐(0)
摘要:分析:暴力的方法是非常显然的,从起点走一次,从终点走一次,路径相交的点即为所求,但是这样存图都很难存下,而且如果数据极端可能要求R*C次,时间空间都受不了.如果不需要记录整张图,并且一次能移动很多步就好了,标程用了树状数组+set,我不是很懂,只能打一个暴力了. 暴力: std: 阅读全文
posted @ 2017-10-25 13:55 zbtrs 阅读(228) 评论(0) 推荐(0)
摘要:分析:感觉很像是贪心,但是直接贪找不到方法.一个暴力的想法是枚举最小步数,然后看每个指针能够覆盖到的位置,看看能不能覆盖到所有点.这个求最大覆盖就有点贪心的思想,因为给的ai,bi都是递增顺序的,考虑第i个指针,如果左边还有点没有覆盖到是一定要去覆盖的,剩下的步数可以一直往右走.这样的话有两种情况, 阅读全文
posted @ 2017-10-25 10:29 zbtrs 阅读(144) 评论(0) 推荐(0)
摘要:分析:题目可以转化为对于一个数,对它进行x次减法操作,n-x次加法操作,使他变成最小的非负整数.因为每减一次数就会减小,次数是一定的,所以可以二分x,就可以了. 阅读全文
posted @ 2017-10-25 08:32 zbtrs 阅读(134) 评论(0) 推荐(0)
摘要:分析:这道题实在是不好想,一个可以骗分的想法是假定要求的那个点在中心点上,可以骗得不少分.但是在边上的点要怎么确定呢?理论复杂度O(﹢无穷).答案一定是和端点有关的,涉及到最大值最小,考虑二分最大值,关键就是怎么check.如果有一条边x,还有一个点y,把y到x上的点的距离>mid的点给标记上,这样 阅读全文
posted @ 2017-10-24 22:06 zbtrs 阅读(209) 评论(0) 推荐(0)
摘要:分析:对于第一个点,答案为26^n - 25^n,这个很好想.另外30%的点因为n <= 5,所以可以直接暴力搜索. 数学方法不是很好处理,考虑dp,设f[i][j]为前i位匹配到危险串第j位的方案数,枚举第i+1位上的字母k,f[i][j]可以转移到f[i+1][危险串中下一个k出现的位置],危险 阅读全文
posted @ 2017-10-24 20:39 zbtrs 阅读(269) 评论(0) 推荐(0)
摘要:分析:比较难的一道题,看到要求方案数,又是在一棵树上,自然就想起了树形dp.状态该怎么表示呢?首先肯定有一维状态表示以i为根的子树,考虑到i有没有匹配对答案也是有影响的,自然而然状态就出来了:f[i][0/1]表示以i为根的子树中,i取或不取的最大匹配.因为要求方案数,再开一个数组g[i][0/1] 阅读全文
posted @ 2017-10-24 18:49 zbtrs 阅读(190) 评论(0) 推荐(0)
摘要:题目更正:输出的a<b. 分析:这是一道数学题,范围这么大肯定是有规律的,打个表可以发现f(a,b)=k,a+b最小的a,b是斐波那契数列的第k+1项和k+2项.矩阵快速幂搞一搞就好了. 阅读全文
posted @ 2017-10-24 14:07 zbtrs 阅读(193) 评论(0) 推荐(0)
摘要:分析:体积最大的比较好处理,对于第(i,j)格的高度取min(a[i],b[j])就好了,保证让每个格子的高度最大.对于最小的情况,只要让第i列上有一个格子高度为a[i],其它全是0,第j行有一个高度为b[j],其它全是0就好了.如果a,b中有相同的元素,那么它们可以共用一个格子,因为最后每个高度都 阅读全文
posted @ 2017-10-24 09:43 zbtrs 阅读(193) 评论(0) 推荐(0)
摘要:3 分析:约瑟夫环问题,可以用链表模拟做,也可以套用公式,比较水. 阅读全文
posted @ 2017-10-24 08:35 zbtrs 阅读(171) 评论(0) 推荐(0)
摘要:分析:纯数学题.相离和包含关系的可以很容易算出来答案,相交的话要先求出两个圆的面积,然后减掉中间重叠的部分,这一部分并不能直接求出来,但是可以求出两个扇形的面积,和它们围成的一个四边形的面积,加加减减就出来了.利用到了acos函数,返回来的是弧度制! 阅读全文
posted @ 2017-10-24 08:30 zbtrs 阅读(148) 评论(0) 推荐(0)
摘要:分析:子树上操作,要用到线段树+dfs序,关键就是子树内k还要增加,这个就不是很好办.可以求出在根节点+0后每个点会加多少,记为d[i],如果要对点x进行A操作,实际上只需要对子树加k - d[i]再加上子树的d[i]和,但是在实际求答案的时候不能直接求出子树和+Σd[i],因为如果你没有修改的话答 阅读全文
posted @ 2017-10-23 20:11 zbtrs 阅读(178) 评论(0) 推荐(0)
摘要:分析:很显然这是一道搜索题,可能是由于我的搜索打的太不美观了,这道题又WA又T......如果对每一个询问都做一次bfs是肯定会T的,注意到前70%的数据范围,N的值都相等,我们可以把给定N的所有情况给算出来,然后O(1)查询.从终点状态往起点状态BFS就可以了. 当最终状态很少,起始状态很多的时候 阅读全文
posted @ 2017-10-23 13:47 zbtrs 阅读(175) 评论(0) 推荐(0)
摘要:分析:一道非常恶心的dp题.每个人要么选或不选,很像是0-1背包,可以套用背包问题的状态,但是因为题目要求3个值,所以可以再加一维表示3个答案. f[i][j][k][l][p][0/1/2]表示i个守门员,j个后卫,k个中锋,l个前锋,花费是p,最后一维是0则表示不考虑队长的价值,1是方案数,2是 阅读全文
posted @ 2017-10-23 08:56 zbtrs 阅读(160) 评论(0) 推荐(0)
摘要:分析:这道题有点丧病啊......斐波那契数列本来增长就快,n <= 10^100又套2层,看到题目就让人绝望.不过这种题目还是有套路的.首先求斐波那契数列肯定要用到矩阵快速幂,外层的f可以通过取模来变小,可是里面的f不能直接取模1e9+7.因为余数最多就1e9+7种,所以肯定有一个循环节,打表发现 阅读全文
posted @ 2017-10-22 21:06 zbtrs 阅读(168) 评论(0) 推荐(0)
摘要:分析:题目中说用栈实现,我觉得这样很麻烦,就用了一个数组+指针解决了.其实就是大模拟. 阅读全文
posted @ 2017-10-22 16:15 zbtrs 阅读(170) 评论(0) 推荐(0)
摘要:题目描述 给定一个 n ∗ m 个矩阵,矩阵中每个数都是 [1, 12] 内的整数。你可以执行下列两个操作任意多次: • 指定一行,将该行所有数字 +1. • 指定一列,将该列所有数字 +1. 如果执行完上述操作之后,矩阵中某个数变成了 3, 6, 9, 12 其中的某一个,我们认为这个数是稳的。 阅读全文
posted @ 2017-10-22 15:09 zbtrs 阅读(636) 评论(1) 推荐(0)