- 博客(5)
- 收藏
- 关注
原创 codeforces 805F
卢总教我们的big-small思想,神奇的一匹。也就是分块的思想。首先一手树形DP吧每个树的的每个点的最远长度预处理出来。对于两棵树,每一对点u,v只有两种情况,maxlen=max(maxlenu,maxlenv),一种是u的最远路+v的最远路+1>maxlen,另一钟相反。于是我们只要枚举一棵树中的点,然后对另一棵树中的点进行二分处理,前缀和优化一下,两种情况就可以logn求和了了,所以
2017-11-29 10:37:32 354
原创 UVA12325
若s1>sqrt(n),直接枚举1,2亦然。当s1,s2v2/s2,及1的性价比更高,对于s1*s2的空间,肯定选1放,所以最后剩下的只有n%(s1*s2),这些空间就用来放2。很有道理然而我并不知道为什么错了。标解的做法是假设1性价比高的情况下,买了t1个1,t2个2,假如t2>s1 => t2*s2>s1*s2 ,而s1*s2肯定是买s2个1比较划算,所以t2一定#include
2017-11-15 21:51:45 258
原创 cf600E
一开始用sb方法,时间没超然而内存爆了,之后又换了操作,启发式合并可证明最坏情况是合并的复杂度一共是nlognlogn的复杂度。map还是好容易在dfs里面炸内存啊。然而他swap两个map和swap两个map的下标最后的时间差别只有一点点。据说swap(map[1],map[2])是只交换指针的,不用遍历整个map[1],map[2]种的元素,神奇。#include<cstdi...
2017-11-15 20:04:56 543
原创 bzoj1901zoj2112
bzoj1901听说不用建静态主席树,可以直接当树状数组添加也不会爆内存,然而并没有权限号。由于zoj2112的n有5*1e5所以不能一开始就nlognlogn的空间丢进去,不然会炸,需要建一颗nlogn空间的静态线段树,然后再mlognlogn的跟新,这样就不会爆数组。静态开一个rt1[maxl],动态开一个rt2[maxl]因为是要动态修改的区间第k大,把主席树当树状数组来看待,要求l到r
2017-11-12 16:17:36 285
原创 ccpc2016杭州D题HDU5936
一开始以为是个搜索题,还推出了很强的减枝。。然并卵,T=100教我做人没想到是个折半后hash,挺神奇的,根据规律和感觉y大概最多10位数,因为当y很大的时候,每多1位数最多加上9^9,而整个y要*10,所以y一大了x就很容易小于0,而此题x>0,x<10^9,于是猜想y最多10位数。于是先把前5位数(可以是0)的结果保存起来,再用后5位数去搜。用mapT掉了,于是换成了uno...
2017-11-02 21:08:55 312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人