bzoj2584
    
                
摘要:这是bzoj上AC的第700题,一定要是一道神题!!!当初分组赛的时候讲过拖到现在才写……我们考虑把垂直方向移动和水平方向移动分开来考虑,不合法的轮数取二者最小假设考虑的是垂直方向移动,障碍其实就是类似与x线段一定在y线段之前移动的意思不难想到拓扑图,如果我们求出了一个向上移动的拓扑图,不难发现只向...
        
阅读全文
                    posted @ 
2015-06-30 18:08 
acphile
        
阅读(227) 
         
        推荐(0)     
                 
                
                
    bzoj1063
    
                
摘要:仔细观察可以发现,这个规划路径很像树链剖分树链剖分的经典定理:任意一个点到根的所经过轻边不超过logn而这个规划路径所走公路相当于轻边,也就是说,不便利度不会很大那么直接dp即可,设f[x,i,k]表示以x为根的子树,不便利度不超过i,且x向下连了k[0,2]条边的方案数根据增量法的思想,不难从孩子...
        
阅读全文
                    posted @ 
2015-06-30 17:04 
acphile
        
阅读(145) 
         
        推荐(0)     
                 
                
                
    bzoj1563
    
                
摘要:Pb then exit(a) else exit(b);27 end;28 29 function min(a,b:longint):longint;30 begin31 if a>b then exit(b) else exit(a);32 end;33 34 procedu...
        
阅读全文
                    posted @ 
2015-06-30 17:00 
acphile
        
阅读(250) 
         
        推荐(0)     
                 
                
                
    bzoj1566
    
                
摘要:好题,这道题体现了换一个角度计数的思想a1^2+a2^2+……ak^2=(变成第1种输出序列的操作序列数目)^2+(变成第2种输出序列的操作序列数目)^2……脑洞大一点,这就相当于两个操作序列变成相同输出序列的对数(包括自己和自己)于是dp即可……dp[i,j,k]表示输出到第i个,第一个操作序列在...
        
阅读全文
                    posted @ 
2015-06-30 16:56 
acphile
        
阅读(256) 
         
        推荐(0)     
                 
                
                
    bzoj2251
    
                
摘要:以前看到这道题想到的是SA,做起来不是很美观学了SAM之后,这题简直是随便搞 1 var go:array[0..6010,'0'..'1'] of longint; 2 s,sa,mx,w,fa:array[0..6010] of longint; 3 i,n,last,t:lon...
        
阅读全文
                    posted @ 
2015-06-30 16:50 
acphile
        
阅读(192) 
         
        推荐(0)     
                 
                
                
    bzoj2878
    
                
摘要:又是环套树dp,这次不是我擅长的类型首先考虑树上的暴力,肯定是穷举起点然后以起点为根dp我们用g[i]表示以点i为期望走的路径总长,答案就是1/n*Σ(g[i]/d[i]) (d[i]表示点度数)不难发现我们只需要两次dfs就能求出g[i],即先求出向下的,然后求向上的具体的,我们设f[x]表示x向...
        
阅读全文
                    posted @ 
2015-06-30 16:49 
acphile
        
阅读(225) 
         
        推荐(0)     
                 
                
                
    bzoj1564
    
                
摘要:嗯,这是一道简单题注意二叉搜索树的子树中序一定是连续的又因为取值修改是任意的并且修改代价与权值无关不难想到把权值离散化,然后按找数据值排序,然后dpf[i][j][w]表示从i~j的节点构成一棵子树且所有节点权值都大于等于w的最小代价和转移很明显,记忆化搜索即可 1 const inf=21474...
        
阅读全文
                    posted @ 
2015-06-30 16:22 
acphile
        
阅读(156) 
         
        推荐(0)     
                 
                
                
    bzoj3244
    
                
摘要:很不幸,这题我又被虐了,给个链接http://www.cnblogs.com/g-word/p/3288675.html 1 var p:array[0..20] of longint; 2 f:array[0..200010,0..20] of longint; 3 mx,b,d,...
        
阅读全文
                    posted @ 
2015-06-30 16:12 
acphile
        
阅读(144) 
         
        推荐(0)     
                 
                
                
    bzoj2432
    
                
摘要:被虐的体无完肤,直接给题解地址吧:http://vfleaking.blog.163.com/blog/static/174807634201341721051604/ 1 const maxk=1000010; 2 type matrix=array[1..3,1..3] of int64; ...
        
阅读全文
                    posted @ 
2015-06-30 16:06 
acphile
        
阅读(294) 
         
        推荐(0)     
                 
                
                
    bzoj2437
    
                
摘要:会做jsoi那道game,这题就非常简单了吧我们考虑空格的移动,显然,初始与空格位置距离为奇数的黑棋和距离为偶数的白棋并没有什么用,空格不会移到那,我们直接把他们当作障碍,其他点我们当作可移动区域这不就和game那道题一样了吗,只不过这题不问棋子放哪而是给定棋子位置,问当前是否是先手必胜(错误操作就...
        
阅读全文
                    posted @ 
2015-06-30 16:03 
acphile
        
阅读(305) 
         
        推荐(0)     
                 
                
                
    bzoj2436
    
                
摘要:不难发现两边的活动是交替进行的,我们可以dp先对时间离散化,设f[i,j]到时间i一个会场选j个活动,另一个会场最多有多少活动,那么f[i,j]=max(f[k,j]+s[k,i],f[k,j-s[k,i]])然后第一问的答案就是max(min(f[n*2,i],i))第二问是要求必选一个,那这一定...
        
阅读全文
                    posted @ 
2015-06-30 15:50 
acphile
        
阅读(306) 
         
        推荐(0)     
                 
                
                
    bzoj1562
    
                
摘要:很明显是二分图匹配,关键是怎么求字典序最小想到两种做法,首先是直接匹配,然后从第一位贪心调整第二种是从最后一个倒着匹配,每次匹配都尽量选小的,这样一定能保证字典序最小 1 type node=record 2 po,next:longint; 3 end; 4 5 var ...
        
阅读全文
                    posted @ 
2015-06-30 14:47 
acphile
        
阅读(176) 
         
        推荐(0)     
                 
                
                
    bzoj3242
    
                
摘要:如果是树,那么一定选择树的直径的中点套了个环?裸的想法显然是断开环,然后求所有树的直径的最小值环套树dp的一般思路,先把环放到根,把环上点下面的子树dp出来,然后再处理环上的情况设f[i]表示以i为根的子树向下延伸的最长链长度我们把环上的点扩展一倍,用前缀和维护环上的边权依次枚举断点,则对直径影响就...
        
阅读全文
                    posted @ 
2015-06-30 14:45 
acphile
        
阅读(244) 
         
        推荐(0)     
                 
                
                
    bzoj3955
    
                
摘要:首先,最短路不同的两辆车一定不会发生堵塞对于最短路相同的点,我们把属于最短路径上的边拎出来建图跑最大流即可然后我TLE了……因为很明显建出来图很大,而真正流的流量很小普通的初始标号都是0的sap在增广的时候编号会非常慢运用fanhq博客里的做法,先用dfs计算图的标号O(m+n),然后再跑sap就跑...
        
阅读全文
                    posted @ 
2015-06-30 10:25 
acphile
        
阅读(288) 
         
        推荐(0)     
                 
                
                
    bzoj2535 2109
    
                
摘要:做过4010这题其实就水了把图反向之后直接拓扑排序做即可,我们可以用链表来优化每个航班的最小起飞序号就相当于在反向图中不用这个点最迟到哪 1 type node=record 2 po,next:longint; 3 end; 4 5 var e:array[0....
        
阅读全文
                    posted @ 
2015-06-30 10:19 
acphile
        
阅读(186) 
         
        推荐(0)     
                 
                
                
    bzoj4154
    
                
摘要:一开始读错题,各种不会做,后来发现染色只是染孩子……那不就简单了吗……注意这题是允许离线的染色如果没有距离限制,它就是个dfs序距离限制怎么做呢?我们考虑扩展一维变成二维的问题,将每个点变为二维平面上的点(x,y),y=d[x]表示x的深度染色a,距离限制l实际上就是对x∈[l,r],y0 do 3...
        
阅读全文
                    posted @ 
2015-06-30 10:14 
acphile
        
阅读(334) 
         
        推荐(0)     
                 
                
                
    bzoj2489
    
                
摘要:这种题完全可以暴力找规律,暴力打表各种搞法这里有一篇比较全面的题解:http://acm.uestc.edu.cn/bbs/read.php?tid=3698&page=1&toread=1#tpc 1 var f:array[0..1510] of extended; 2 n,m,i,j,...
        
阅读全文
                    posted @ 
2015-06-30 09:53 
acphile
        
阅读(227) 
         
        推荐(0)     
                 
                
                
    bzoj1043
    
                
摘要:每次做计算几何题都要做好久考虑每个圆对答案的贡献,也就是每个圆被后面圆覆盖还有多少可以把覆盖当成盖住一段弧度,看最后有多少没被覆盖这就相当于线段覆盖问题了,推推公式,算极角然后排序即可md,pascal算极角就是麻烦 1 uses math; 2 const pi=3.1415926535897...
        
阅读全文
                    posted @ 
2015-06-30 09:47 
acphile
        
阅读(183) 
         
        推荐(0)     
                 
                
                
    bzoj1975
    
                
摘要:显然是类似k短路,直接不停增广即可好久没写A*了,裸的A*可能会TLE加点剪枝就卡过去了……… 1 type node=record 2 po,next:longint; 3 cost:double; 4 end; 5 point=recor...
        
阅读全文
                    posted @ 
2015-06-30 09:43 
acphile
        
阅读(147) 
         
        推荐(0)     
                 
                
                
    学军NOI训练13 T3 白黑树
    
                
摘要:唉,大学军有自己的OJ就是好,无限orz 只有周六的比赛是开放的囧,这场比赛最后因为虚拟机卡住没有及时提交…… 否则就能让大家看到我有多弱了…… 前两题题解写的很详细,可以自己去看,我来随便扯扯T3好了 题目是这样的: 有一棵以1为根的白黑树,每个节点都是黑色或白色,初始权值是0。维护两个操作: 1
        
阅读全文
                    posted @ 
2015-06-22 16:27 
acphile
        
阅读(600) 
         
        推荐(0)     
                 
                
                
    bzoj2351 2462
    
                
摘要:我没写hash,写了一些奇怪的做法,好像被hash随便操了……如果没有多测,那么这道题是白书上的例题把询问矩阵当作a个模板串,建成一个ac自动机把一开始的矩阵当作n个串放到自动机上匹配,找到a个模板串所有出现的位置然后找到对应矩阵的左上角上计数(即如果是第i个模板串出现在第x个串的第y个位置,则g[...
        
阅读全文
                    posted @ 
2015-06-22 15:06 
acphile
        
阅读(347) 
         
        推荐(0)     
                 
                
                
    bzoj2482
    
                
摘要:还是像以前那样维护下次出现位置,计算影响其实不难,思维盲点,受到做最大子段和的影响其实这里可以直接维护当前每个位置的子段和,再记录一个历史最大和当然tag也需要记录当前tag和历史(距离上次push)最大累加 1 type node=record 2 x,y,id:longint;...
        
阅读全文
                    posted @ 
2015-06-20 18:38 
acphile
        
阅读(137) 
         
        推荐(0)     
                 
                
                
    bzoj3747
    
                
摘要:经典题,记录每个位置对应数下次出现的位置next[i]每个位置维护当前左端点下到这个位置的和随着左端点的右移一位到i+1,对[i+1,next[i]-1] 的影响是-a[i], [next[i],next[next[i]]-1]的影响是a[i]线段树维护,pascal过不去系列UPD:现在时限开大能...
        
阅读全文
                    posted @ 
2015-06-20 18:35 
acphile
        
阅读(239) 
         
        推荐(0)     
                 
                
                
    bzoj4011
    
                
摘要:好题,首先有一个结论,有向无环图的树形图数目=根节点意外入度之积现在相当于在原图上加一条边问树形图的数目考虑多出来不合法的方案,一定是成环且包含新加入的边对于一条路贡献就是∏d[i][i∉path]考虑不属于太不和谐,我们设s=∏d[i]贡献就是s*∏d[i]^(-1)[i属于path],这样我们就...
        
阅读全文
                    posted @ 
2015-06-20 18:29 
acphile
        
阅读(211) 
         
        推荐(0)     
                 
                
                
    bzoj3551 3545
    
                
摘要:我直接来讲在线好了这是一个很巧妙的方法,把边作为一个点做一遍最小生成树,当加如一条边时,我们把这条边两点x,y的并查集的根i,j的父亲都设为这条边代表的点k,由k向i,j连边这样我们就构建出一棵树,这棵树的叶子都是原来节点且每棵子树都是在子树根所代表的边的限制下的最小连通块这样我们就可以通过dfs序...
        
阅读全文
                    posted @ 
2015-06-20 17:01 
acphile
        
阅读(298) 
         
        推荐(0)     
                 
                
                
    一些简单题解
    
                
摘要:bzoj4050 直接模拟即可bzoj4043 暴力dp,用把到当前能确定的大小关系表示成4个状态bzoj4045 ……大家都会bzoj3671 一位位判断是否可取即可bzoj2836 sb题,一开始样例格式错了坑了我好久bzoj1304 看出来每个点最优值都一样就没了bzoj1499 上下左右分开...
        
阅读全文
                    posted @ 
2015-06-20 16:29 
acphile
        
阅读(163) 
         
        推荐(0)     
                 
                
                
    bzoj3140
    
                
摘要:首先考虑二维的情况min(x,y)也就意味着确定最小后,另外一维肯定打满然后最小那个如果是k的话就相当于用k*1次——这不就是行列覆盖吗,二分图秒之三维呢?考虑到a*b*cb then exit(a) else exit(b); 15 end; 16 17 procedure add(x,y:...
        
阅读全文
                    posted @ 
2015-06-20 16:27 
acphile
        
阅读(133) 
         
        推荐(0)     
                 
                
                
    bzoj3672
    
                
摘要:感觉是noi2014中最有价值的一道题了我们先考虑链上这个问题怎么做……如果没限制,那就是SB的斜率优化我们可以得到这个式子(f[j]-f[k])/(s[j]-s[k])b then exit(a) else exit(b); 21 end; 22 23 procedure min(var a...
        
阅读全文
                    posted @ 
2015-06-20 16:18 
acphile
        
阅读(231) 
         
        推荐(0)     
                 
                
                
    bzoj3983
    
                
摘要:显然我们得到这样几个结论1.每次攻击对方一定是攻击最大的2.自己合并也是合并最大和次大的我们只要穷举下一开始是攻击还是合并,之后就是能攻击先攻击否则就合并 1 type node=array[0..100010] of int64; 2 3 var a,b,c,d:node; 4 ...
        
阅读全文
                    posted @ 
2015-06-20 16:01 
acphile
        
阅读(342) 
         
        推荐(0)     
                 
                
                
    bzoj4044
    
                
摘要:这题简直了…………首先根据操作可知,我们肯定是先造出某个偶数长度的回文串,然后添加若干字符得到设回文串长为len[x]则ans=min(n-len[x]+f[x]);那么问题就是制造这个串的回文串,最少的操作次数对于回文串x,我们有这种情况f[x]=min(f[y]+1,(y是x去掉首尾),f[y]...
        
阅读全文
                    posted @ 
2015-06-20 15:58 
acphile
        
阅读(259) 
         
        推荐(0)     
                 
                
                
    bzoj1064
    
                
摘要:很巧妙的题首先有几种情况1. 有环 2.两点间有多条路径 3.其他3.显然最简单,最小是3,最大是每个弱联通块中最长链2.显然,两点间两条路径的差是答案的倍数1.出现环,那答案一定是其约数,那么最大答案就是所有环长的最大公约数,最小是最大的大于等于3的最小因数综合以上,我们就有了大概的思路,但是不好...
        
阅读全文
                    posted @ 
2015-06-20 15:49 
acphile
        
阅读(168) 
         
        推荐(0)     
                 
                
                
    bzoj4042
    
                
摘要:比较好的树形dp,涉及到树上路径的题目,我们往往考虑对路径分类当我们考虑以x为根的子树,有这样几类路径1. 起点终点都在子树内2. 一个点延伸到子树外对于要选择另一个点在子树外的路径,要建立在不破坏儿子子树内的路径基础上因为破坏会破坏多条,而只能多选择一条,不合适因此我们考虑树dp,设f[x]为路径...
        
阅读全文
                    posted @ 
2015-06-20 15:37 
acphile
        
阅读(316) 
         
        推荐(0)     
                 
                
                
    bzoj1312
    
                
摘要:忘写题解了,经典的最大密度子图可以类似分数规划的做,二分密度,然后转化为最大权闭合子图做,判断是否大于0注意方案的输出 1 const eps=1e-6; 2 lim=1e-12; 3 inf=1000000007; 4 type node=record 5 ...
        
阅读全文
                    posted @ 
2015-06-20 15:00 
acphile
        
阅读(199) 
         
        推荐(0)     
                 
                
                
    bzoj1594
    
                
摘要:首先想到二分答案然后我们从大往小加区间,如果之前出现了一个区间包含当前区间那显然不合法,我们可以用并查集了维护 1 type node=record 2 x,y,mi,id:longint; 3 end; 4 5 var q:array[0..25010] of ...
        
阅读全文
                    posted @ 
2015-06-13 14:18 
acphile
        
阅读(256) 
         
        推荐(0)     
                 
                
                
    bzoj4046
    
                
摘要:分组赛的题……madan原题,考试想不出来真是SB得不行首先,从大往小加边,每次加边如果成环必然弹出环上最大边考虑询问[x,y],如果边权在[x,y]的边弹出了小于等于y的边j,说明j不在最小生成树上其余边权在[x,y]的边都在最小生成树上因此我们每次只要询问,在一段区间内边权小于等于y的边权和是多...
        
阅读全文
                    posted @ 
2015-06-13 14:15 
acphile
        
阅读(538) 
         
        推荐(0)     
                 
                
                
    bzoj2829
    
                
摘要:裸题,直接上凸包,然后加上一个圆周即可只是在这之前没写过旋转而已 1 const pi=3.14159265358979323; 2 eps=1e-8; 3 type point=record 4 x,y:double; 5 end; 6 7 var p:arr...
        
阅读全文
                    posted @ 
2015-06-13 14:08 
acphile
        
阅读(295) 
         
        推荐(0)     
                 
                
                
    bzoj4080
    
                
摘要:分组赛时wy大神讲的题,网上都是随机化的题解我来讲一下正解吧,我们穷举两个点,这两点距离要小于限制然后我们分别以这两个点为圆心,两点距离为半径画圆圆圆相交的部分被两点练成线段划分成两部分,不难发现每个部分内点点之间的距离是小于限制的,很明显想到二分图对于上半部分与下半部分的两点,如果距离大于限制则连...
        
阅读全文
                    posted @ 
2015-06-13 13:52 
acphile
        
阅读(569) 
         
        推荐(0)     
                 
                
                
    APIO2015题解
    
                
摘要:分组赛讲课讲了APIO2015的题,于是回去就做完了稍微写一点题解吧bzoj4069 逐位处理的简单题,然后就是bool型dp然后a=1 的时候可以把一位状态干掉当一维状态单调且是bool型dp时,我们可以用dp表示这一维状态;类似的思想也在bzoj1937出现过 1 var s:array[0.....
        
阅读全文
                    posted @ 
2015-06-13 12:17 
acphile
        
阅读(393) 
         
        推荐(0)     
                 
                
                
    bzoj4048 3928
    
                
摘要:羞耻,分组赛上考的,竟然没想出来,对坐标离散化后区间dp即可,竟然还双倍经验 1 const inf=100000007; 2 var f:array[0..610,0..610] of longint; 3 v:array[0..10010] of longint; 4 a,b,h...
        
阅读全文
                    posted @ 
2015-06-13 11:31 
acphile
        
阅读(281) 
         
        推荐(0)     
                 
                
                
    bzoj3571
    
                
摘要:同样的最小乘积XXX模型,这里显然是二分图带权匹配我不会写KM……于是写了个费用流,由于是稠密图,会退化到n^4然后本地跑了56s,交上去过了………………一定是我电脑太慢……改天写个KM吧 1 const inf=14000*14000; 2 type node=record 3 ...
        
阅读全文
                    posted @ 
2015-06-13 11:30 
acphile
        
阅读(310) 
         
        推荐(0)     
                 
                
                
    bzoj2395
    
                
摘要:分组赛时学到的最小乘积生成树模型,感觉这个思路非常神,可以说是数形结合的经典问题由于生成树有两个权值,我们把每个生成树的权值表示成点坐标(sa,sb)显然我们知道,乘积最小,那么点必然落在下凸壳上但由于点太多,graham之类要先知道所有点再求凸包的算法就失效了于是我们使用quickhull算法,这...
        
阅读全文
                    posted @ 
2015-06-13 11:28 
acphile
        
阅读(669) 
         
        推荐(0)     
                 
                
                
    JSOI2015 分组赛记
    
                
摘要:分组赛结束了,虽然跟我关系不大,但是去了还是学到了不少东西day1 上午报到,在宾馆遇到大神wzy,orz好像没有参赛证发了,于是给我发了一个【工作证】,233我是工作人员了,高贵冷艳下午是常中的大神xy讲课,是world final的题,前两题都是做过的题,后面的题没做过就没太听懂……晚上是wy大...
        
阅读全文
                    posted @ 
2015-06-09 17:09 
acphile
        
阅读(630) 
         
        推荐(0)     
                 
                
                
    bzoj2792
    
                
摘要:首先想到二分答案是吧,设为lim这道题难在判定,我们先不管将一个数变为0的条件先使序列满足相邻差(i-j)*lim的话,aj要变成a[i]+(i-j)*lim,否则的话,对于k(i-j)*lim即a[j]+j*lim>i*lim,怎么做很明显了吧…… 1 var a,b,d:array[0..10...
        
阅读全文
                    posted @ 
2015-06-05 23:34 
acphile
        
阅读(167) 
         
        推荐(0)     
                 
                
                
    bzoj2800
    
                
摘要:这题好难,翻了一下波兰文的题解……这好像是当年唯一没人A的题目首先区间修改不难想到差分,我们令d1=x1,dn+1=-xn,di=xi-xi-1注意Σdi=0,这样对于[l,r]的修改(比如+a) 就是d[l]+a d[r+1]-a首先不难想到,对于每个di,ax+by=di一定要有解(gcd(a,...
        
阅读全文
                    posted @ 
2015-06-05 23:17 
acphile
        
阅读(158) 
         
        推荐(0)     
                 
                
                
    bzoj1913
    
                
摘要:这是一道好题,要求每个三点圆覆盖的点数和 我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形 显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1 凸四边形,其最小圆覆盖是以最长对角线为直径的 注意一个很重要的条件,四点不共圆,所以凸四边形的贡献是2 四边形总数是一定的
        
阅读全文
                    posted @ 
2015-06-04 23:23 
acphile
        
阅读(930) 
         
        推荐(0)     
                 
                
                
    bzoj3413
    
                
摘要:SAM好题,显然我们不能与每个后缀都去算LCP考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树)根据parent树的定义,一个节点对应字符串出现的位置对应该节点的right集合也就是子树right集合的并某些节点代表了一个后缀,我们从开头到结尾编号为1~n...
        
阅读全文
                    posted @ 
2015-06-04 22:52 
acphile
        
阅读(580) 
         
        推荐(0)     
                 
                
                
    bzoj3252
    
                
摘要:简单题,每次取出最长链,然后对于练上每个点x,终点在其子树内的链都要减去a[x]这显然可以用dfs序+线段树维护显然每个点只要删一次即可,复杂度是O(nlogn) 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 ...
        
阅读全文
                    posted @ 
2015-06-04 22:25 
acphile
        
阅读(177) 
         
        推荐(0)     
                 
                
                
    bzoj3272 3638
    
                
摘要:好题,这道题可以用线段树来快速模拟费用流寻找最长增广路这样修改怎么做也很显然了 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 end; 4 5 var tree:array[0..100010*4,0...
        
阅读全文
                    posted @ 
2015-06-04 22:17 
acphile
        
阅读(264) 
         
        推荐(0)     
                 
                
                
    bzoj3994
    
                
摘要:智商太低了详细题解在这里http://blog.csdn.net/zmoiynlp/article/details/45176129 1 const max=50001; 2 var u,c,p:array[0..max] of longint; 3 g:array[0..max] of i...
        
阅读全文
                    posted @ 
2015-06-04 22:11 
acphile
        
阅读(270) 
         
        推荐(0)     
                 
                
                
    bzoj2797
    
                
摘要:对和排序,显然最小是a1+a2,次小a1+a3 然后穷举哪里是a2+a3 这样a1,a2,a3就求出来了注意a2+a3只可能是前n+1项中的一个,所以穷举这步是O(n)的接下来我们把已经确定的数的和找到并标记,那么下一个未标记的和就是a1+新的数,然后依次递推下去即可 1 var v:array[0...
        
阅读全文
                    posted @ 
2015-06-04 22:03 
acphile
        
阅读(242) 
         
        推荐(0)     
                 
                
                
    bzoj2801
    
                
摘要:也就是一堆方程,每个方程都形如xi+xj=P模拟代入消元即可,并且求出取值范围遇到环就可以直接解出来,判断是否可行由于这题比较坑爹,读入太大会RE,要cheat,就不放代码了
        
阅读全文
                    posted @ 
2015-06-04 21:17 
acphile
        
阅读(177) 
         
        推荐(0)     
                 
                
                
    bzoj2823
    
                
摘要:最小圆覆盖有个东西叫作随机增量法,具体可以baidu这里来说说怎么求三点共圆这其实就是求两条线段的交点在编程中,我们解方程是比较麻烦的一个比较好的方法是利用相似三角形设线段AB,CD交P,则PC:PD=Sabc:Sabd然后用定比分点就可以求的交点坐标了 1 const eps=1e-6; 2 3...
        
阅读全文
                    posted @ 
2015-06-04 20:58 
acphile
        
阅读(254) 
         
        推荐(0)     
                 
                
                
    bzoj1185
    
                
摘要:一遇到数学题和计算几何题我就要调半天……玛雅,我真是太弱了……基本思路很简单,先上凸包,然后矩形与凸包一边重合,然后旋转卡壳即可然而我没怎么写过计算几何题,一开始写的各种囧,后来看了hzwer的写法才写得正常一些一开始写囧,是找矩形的左右边界,用勾股定理算的,囧得不行;后来发现可以用点积来判断,点积...
        
阅读全文
                    posted @ 
2015-06-04 20:30 
acphile
        
阅读(176) 
         
        推荐(0)     
                 
                
                
    bzoj2788
    
                
摘要:明显是一个差分约束系统 对于第一种限制,其实就是x[a]+1<=x[b] x[b]-1<=x[a] 根据三角不等式很容易建图 但这题他比较奇怪,问的是X最多不同取值的个数 根据这张图的特殊性我们不难发现,两个强联通分量内X的取值种类是互不干涉的 也就是说我们可以分别统计每个强联通分量然后累计即可 为
        
阅读全文
                    posted @ 
2015-06-04 20:07 
acphile
        
阅读(418) 
         
        推荐(0)     
                 
                
                
    bzoj2791
    
                
摘要:每个顶点有且仅有一条出边是什么意思呢类似一棵树,树上的边都是由儿子指向父亲的,并且这个东西带着一个环也就是一个个有向环套有向树……这题还是比较简单的,把环作为根然后类似lca做即可,注意细节的panding 1 type node=record 2 po,next:longint;...
        
阅读全文
                    posted @ 
2015-06-04 19:44 
acphile
        
阅读(272) 
         
        推荐(0)     
                 
                
                
    poi2012完成
    
                
摘要:终于完成了(2798是我cheat的……),感觉poi的题好锻炼智商……截图留念,题解见博客中对应题号的解题报告
        
阅读全文
                    posted @ 
2015-06-04 18:09 
acphile
        
阅读(147) 
         
        推荐(0)