上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 86 下一页
摘要: 分析:这道题实在是不好想,一个可以骗分的想法是假定要求的那个点在中心点上,可以骗得不少分.但是在边上的点要怎么确定呢?理论复杂度O(﹢无穷).答案一定是和端点有关的,涉及到最大值最小,考虑二分最大值,关键就是怎么check.如果有一条边x,还有一个点y,把y到x上的点的距离>mid的点给标记上,这样 阅读全文
posted @ 2017-10-24 22:06 zbtrs 阅读(203) 评论(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 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 分析:比较难的一道题,看到要求方案数,又是在一棵树上,自然就想起了树形dp.状态该怎么表示呢?首先肯定有一维状态表示以i为根的子树,考虑到i有没有匹配对答案也是有影响的,自然而然状态就出来了:f[i][0/1]表示以i为根的子树中,i取或不取的最大匹配.因为要求方案数,再开一个数组g[i][0/1] 阅读全文
posted @ 2017-10-24 18:49 zbtrs 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目更正:输出的a<b. 分析:这是一道数学题,范围这么大肯定是有规律的,打个表可以发现f(a,b)=k,a+b最小的a,b是斐波那契数列的第k+1项和k+2项.矩阵快速幂搞一搞就好了. 阅读全文
posted @ 2017-10-24 14:07 zbtrs 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。 为了减少骗分的情况,接下来还要输出子串的前缀数组next。 (如果你不知道这是什么意思也不要问,去百度搜[kmp算法]学习一下就知道了。) 输入输出格式 输入格式: 第一行为一个字符串,即为s1(仅包含 阅读全文
posted @ 2017-10-24 11:40 zbtrs 阅读(336) 评论(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 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 3 分析:约瑟夫环问题,可以用链表模拟做,也可以套用公式,比较水. 阅读全文
posted @ 2017-10-24 08:35 zbtrs 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 分析:纯数学题.相离和包含关系的可以很容易算出来答案,相交的话要先求出两个圆的面积,然后减掉中间重叠的部分,这一部分并不能直接求出来,但是可以求出两个扇形的面积,和它们围成的一个四边形的面积,加加减减就出来了.利用到了acos函数,返回来的是弧度制! 阅读全文
posted @ 2017-10-24 08:30 zbtrs 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 分析:子树上操作,要用到线段树+dfs序,关键就是子树内k还要增加,这个就不是很好办.可以求出在根节点+0后每个点会加多少,记为d[i],如果要对点x进行A操作,实际上只需要对子树加k - d[i]再加上子树的d[i]和,但是在实际求答案的时候不能直接求出子树和+Σd[i],因为如果你没有修改的话答 阅读全文
posted @ 2017-10-23 20:11 zbtrs 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 分析:很显然这是一道搜索题,可能是由于我的搜索打的太不美观了,这道题又WA又T......如果对每一个询问都做一次bfs是肯定会T的,注意到前70%的数据范围,N的值都相等,我们可以把给定N的所有情况给算出来,然后O(1)查询.从终点状态往起点状态BFS就可以了. 当最终状态很少,起始状态很多的时候 阅读全文
posted @ 2017-10-23 13:47 zbtrs 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 86 下一页