摘要:
还是像以前那样维护下次出现位置,计算影响其实不难,思维盲点,受到做最大子段和的影响其实这里可以直接维护当前每个位置的子段和,再记录一个历史最大和当然tag也需要记录当前tag和历史(距离上次push)最大累加 1 type node=record 2 x,y,id:longint;...
阅读全文
posted @ 2015-06-20 18:38
acphile
阅读(119)
推荐(0)
编辑
摘要:
经典题,记录每个位置对应数下次出现的位置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
阅读(233)
推荐(0)
编辑
摘要:
好题,首先有一个结论,有向无环图的树形图数目=根节点意外入度之积现在相当于在原图上加一条边问树形图的数目考虑多出来不合法的方案,一定是成环且包含新加入的边对于一条路贡献就是∏d[i][i∉path]考虑不属于太不和谐,我们设s=∏d[i]贡献就是s*∏d[i]^(-1)[i属于path],这样我们就...
阅读全文
posted @ 2015-06-20 18:29
acphile
阅读(203)
推荐(0)
编辑
摘要:
我直接来讲在线好了这是一个很巧妙的方法,把边作为一个点做一遍最小生成树,当加如一条边时,我们把这条边两点x,y的并查集的根i,j的父亲都设为这条边代表的点k,由k向i,j连边这样我们就构建出一棵树,这棵树的叶子都是原来节点且每棵子树都是在子树根所代表的边的限制下的最小连通块这样我们就可以通过dfs序...
阅读全文
posted @ 2015-06-20 17:01
acphile
阅读(269)
推荐(0)
编辑
摘要:
bzoj4050 直接模拟即可bzoj4043 暴力dp,用把到当前能确定的大小关系表示成4个状态bzoj4045 ……大家都会bzoj3671 一位位判断是否可取即可bzoj2836 sb题,一开始样例格式错了坑了我好久bzoj1304 看出来每个点最优值都一样就没了bzoj1499 上下左右分开...
阅读全文
posted @ 2015-06-20 16:29
acphile
阅读(152)
推荐(0)
编辑
摘要:
首先考虑二维的情况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
阅读(120)
推荐(0)
编辑
摘要:
感觉是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
阅读(216)
推荐(0)
编辑
摘要:
显然我们得到这样几个结论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
阅读(332)
推荐(0)
编辑
摘要:
这题简直了…………首先根据操作可知,我们肯定是先造出某个偶数长度的回文串,然后添加若干字符得到设回文串长为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
阅读(247)
推荐(0)
编辑