摘要:
这是bzoj上AC的第700题,一定要是一道神题!!!当初分组赛的时候讲过拖到现在才写……我们考虑把垂直方向移动和水平方向移动分开来考虑,不合法的轮数取二者最小假设考虑的是垂直方向移动,障碍其实就是类似与x线段一定在y线段之前移动的意思不难想到拓扑图,如果我们求出了一个向上移动的拓扑图,不难发现只向... 阅读全文
posted @ 2015-06-30 18:08
acphile
阅读(227)
评论(0)
推荐(0)
摘要:
仔细观察可以发现,这个规划路径很像树链剖分树链剖分的经典定理:任意一个点到根的所经过轻边不超过logn而这个规划路径所走公路相当于轻边,也就是说,不便利度不会很大那么直接dp即可,设f[x,i,k]表示以x为根的子树,不便利度不超过i,且x向下连了k[0,2]条边的方案数根据增量法的思想,不难从孩子... 阅读全文
posted @ 2015-06-30 17:04
acphile
阅读(144)
评论(0)
推荐(0)
摘要:
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
阅读(249)
评论(0)
推荐(0)
摘要:
好题,这道题体现了换一个角度计数的思想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)
推荐(0)
摘要:
以前看到这道题想到的是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)
推荐(0)
摘要:
又是环套树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)
推荐(0)
摘要:
嗯,这是一道简单题注意二叉搜索树的子树中序一定是连续的又因为取值修改是任意的并且修改代价与权值无关不难想到把权值离散化,然后按找数据值排序,然后dpf[i][j][w]表示从i~j的节点构成一棵子树且所有节点权值都大于等于w的最小代价和转移很明显,记忆化搜索即可 1 const inf=21474... 阅读全文
posted @ 2015-06-30 16:22
acphile
阅读(155)
评论(0)
推荐(0)
摘要:
很不幸,这题我又被虐了,给个链接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)
推荐(0)
摘要:
被虐的体无完肤,直接给题解地址吧: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
阅读(292)
评论(0)
推荐(0)
摘要:
会做jsoi那道game,这题就非常简单了吧我们考虑空格的移动,显然,初始与空格位置距离为奇数的黑棋和距离为偶数的白棋并没有什么用,空格不会移到那,我们直接把他们当作障碍,其他点我们当作可移动区域这不就和game那道题一样了吗,只不过这题不问棋子放哪而是给定棋子位置,问当前是否是先手必胜(错误操作就... 阅读全文
posted @ 2015-06-30 16:03
acphile
阅读(305)
评论(0)
推荐(0)
摘要:
不难发现两边的活动是交替进行的,我们可以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
阅读(303)
评论(0)
推荐(0)
摘要:
很明显是二分图匹配,关键是怎么求字典序最小想到两种做法,首先是直接匹配,然后从第一位贪心调整第二种是从最后一个倒着匹配,每次匹配都尽量选小的,这样一定能保证字典序最小 1 type node=record 2 po,next:longint; 3 end; 4 5 var ... 阅读全文
posted @ 2015-06-30 14:47
acphile
阅读(176)
评论(0)
推荐(0)
摘要:
如果是树,那么一定选择树的直径的中点套了个环?裸的想法显然是断开环,然后求所有树的直径的最小值环套树dp的一般思路,先把环放到根,把环上点下面的子树dp出来,然后再处理环上的情况设f[i]表示以i为根的子树向下延伸的最长链长度我们把环上的点扩展一倍,用前缀和维护环上的边权依次枚举断点,则对直径影响就... 阅读全文
posted @ 2015-06-30 14:45
acphile
阅读(244)
评论(0)
推荐(0)
摘要:
首先,最短路不同的两辆车一定不会发生堵塞对于最短路相同的点,我们把属于最短路径上的边拎出来建图跑最大流即可然后我TLE了……因为很明显建出来图很大,而真正流的流量很小普通的初始标号都是0的sap在增广的时候编号会非常慢运用fanhq博客里的做法,先用dfs计算图的标号O(m+n),然后再跑sap就跑... 阅读全文
posted @ 2015-06-30 10:25
acphile
阅读(287)
评论(0)
推荐(0)
摘要:
做过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)
推荐(0)
摘要:
一开始读错题,各种不会做,后来发现染色只是染孩子……那不就简单了吗……注意这题是允许离线的染色如果没有距离限制,它就是个dfs序距离限制怎么做呢?我们考虑扩展一维变成二维的问题,将每个点变为二维平面上的点(x,y),y=d[x]表示x的深度染色a,距离限制l实际上就是对x∈[l,r],y0 do 3... 阅读全文
posted @ 2015-06-30 10:14
acphile
阅读(334)
评论(0)
推荐(0)
摘要:
这种题完全可以暴力找规律,暴力打表各种搞法这里有一篇比较全面的题解: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)
推荐(0)
摘要:
每次做计算几何题都要做好久考虑每个圆对答案的贡献,也就是每个圆被后面圆覆盖还有多少可以把覆盖当成盖住一段弧度,看最后有多少没被覆盖这就相当于线段覆盖问题了,推推公式,算极角然后排序即可md,pascal算极角就是麻烦 1 uses math; 2 const pi=3.1415926535897... 阅读全文
posted @ 2015-06-30 09:47
acphile
阅读(182)
评论(0)
推荐(0)
摘要:
显然是类似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
阅读(146)
评论(0)
推荐(0)
浙公网安备 33010602011771号