07 2017 档案
摘要:比赛链接:https://www.jisuanke.com/contest/823 A. 图像压缩四叉树 按题意构造一下树,然后按2,3,0,1的顺序遍历孩子就可以了。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 usi
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=6050 分析:最简单的做法就是一个个求。。先求出F1,n=[2^n-(-1)^n]/3,然后F2,n就是对上面的N项求和,结果是F2,n=[(2^N-1)*2^n+((-1)^N-1)/2*(-1)^n]/3
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=6038 分析:实际上a序列对应一个图,由于是一个排列,保证了图是由若干个互不相交的环组成的,所求的函数实际上也是这样的图。只要a的某个环大小k是函数环的大小的因子,就对应k种取法,然后对不同环乘法原理一下即可
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=6034 分析:做了半天才发现贪心得不对。。先处理出每一位出现的字符各有多少个,然后对超过26个的进位一下!!!类似桶排的做法从大到小排序一下就可以了,注意如果最小的出现在前导位置上,往前推到非前导的为止,然后
阅读全文
摘要:题目链接:https://oj.neu.edu.cn/contest/70/problem/3 分析: 这题略坑。。O(nlogn)过不了,实际上t(1)=(p-1)/gcd(k,p-1),O(logp)可以得到t(1)。 官方题解:
阅读全文
摘要:题目链接:http://arc068.contest.atcoder.jp/tasks/arc068_c 题目大意:有m个车站排成一列,有n种纪念品,第i种只能在l[i]和r[i]之间的车站买到,列车从0出发,每d站停一次,求对于1<=d<=m,分别最多能买到多少种纪念品? 分析:对于长度大于等于d
阅读全文
摘要:分析:写几个就会发现,最优的做法应该是先写1234567890,然后如果不够用,往后面依次加1、2、3……然后就可以过了,这样保证每个数字尽可能多得被用到,题解是另一种构造,原理一样,严格证明看题解。。 题解:
阅读全文
摘要:题目链接:http://codeforces.com/contest/814/problem/D 分析:感觉这题挺综合的,写了好久才写出来。。首先由于圆之间只有外离、内含和相切三种情况,可以将包含的圆看作孩子,得到一棵树(也可能是森林,互不影响,分开做就行了),记Q[i]为圆i包含的面积(带符号,已
阅读全文
摘要:题目链接:http://codeforces.com/contest/814/problem/C 分析:设t[c][k]为连出长度为k的c串所需要的最小代价,暴力处理处t,然后二分找出小于等于m的最大值即可,复杂度为O(n^2+qlogn)。
阅读全文
摘要:题目链接:http://codeforces.com/contest/831/problem/E 分析:题意很简单,一开始想写个树状数组然后找逆序数,发现找下一个并不好处理。。还是用线段树,直接找最小值为下一个,然后再把这个最小值改成无穷大,直接往下推就可以了。
阅读全文
摘要:题目链接:http://arc077.contest.atcoder.jp/tasks/arc077_c 分析:如果某条线段包含x,显然应该先按一下到x,再从x走,反之必然是直接走过去,很容易想到用dp做,记len[i]为包含i点的线段长度之和,s[i]为以i为起点的线段数目,con[i]为包含i的
阅读全文
摘要:分析:一开始想暴力dp,但是有环,不好处理。。考虑建一个图,从k向k-1连一条边权为1,向i*k连一条边权i*k的边,然后Dijkstra,复杂度为O(nlogn(loglog(n)),然而这数据范围。。这时间限制。。 可以简化,只连k乘一个质数p的边,并且p<=13,虽然并不会证明。。可以用未优化
阅读全文
摘要:分析: KMP算法:参考http://www.cnblogs.com/c-cloud/p/3224788.html,是一个线性处理字符串匹配问题的算法 在这里利用到next数组,记t[i]为长度为i的前缀出现的次数,显然t[n]=1。next[i]即为子串[0,i]的后缀与前缀重复的最长长度,因此可
阅读全文
摘要:分析:直接用二分还是会T,用更快的牛顿迭代法。把问题转化为求x^2-n=0的根,假设解为x0,当前解为x且x^2-n>0,在(x,x^2-n)处作切线,与x轴交点横坐标为新的x,然后迭代即可,比二分法快,但是貌似只能用在凹函数或凸函数上。。 java水高精度真是666。。。
阅读全文
摘要:分析:gcd的问题可以考虑用容斥原理做,注意到y<=100,只需要枚举不超过100的数k,算出图中有多少条边权是k的倍数的路径,然后容斥一下即可。关键在于怎么算路径条数。 可以考虑用dp,记dp[i][j][k]为从i到j路径值为k倍数的路径数,dp[i][j][k]=∑dp[c][j][k],c满
阅读全文
摘要:分析:也就是取任意多个数,它们的最大公约数都在这个集合里。考虑到ai比较小,可以枚举小于a中最大值的所有数,判断是否为其中若干个数的gcd。记c[k]为a中k的倍数的个数,然后枚举k的倍数i*k,c[i]<2直接跳过,如果c[i*k]==c[k],说明k的那些倍数也同时是i*k的倍数,k就可以不在集
阅读全文

浙公网安备 33010602011771号