摘要: Pre言:本文的题解原题均来源于白书,题号:UVa 10859, 11825, 11584, 10534, 11552, 11404, 11795, 10564.LA 3983, 4794, 4256, 4731, 4727, 2038, 4394, 4015.一直觉得自己的基础DP不是很扎实,所以... 阅读全文
posted @ 2015-12-21 20:20 Armeria 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 裸题。。第一问最短路,第二问最小割。。先求一发最短路图,然后建图,容量均为1,然后Dinic最大流即可。。// BZOJ 1266#include #include #include #include using namespace std; typedef long long LL; const ... 阅读全文
posted @ 2015-12-17 19:57 Armeria 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 直接套Dinic妥妥地TLE。。怎么办呢。。这是一个平面图。。有一些很好玩的性质。。利用这些性质,我们可以做一些奇妙的转化,把流量转化为边的长度,然后跑一遍最短路即可。。这个转化,就是对偶图。。理论依据详见2008年国家集训队周冬的论文《两极相通——浅析最大—最小定理在信息学竞赛中的应用》、然后又发... 阅读全文
posted @ 2015-12-17 19:16 Armeria 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 本题直接计算即可,“主要是看你会不会算”。。抄了一通Rujia Liu的代码。。同样地。。方便好记然而效率比较低。。所以先用着。。用熟了再参考黄学长的模板。。// UVa 11178#include #include #include using namespace std; int T; #def... 阅读全文
posted @ 2015-12-17 19:10 Armeria 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 一个求树上LCA的裸题。。WC(伪。。)里想出来的。。题目大意:给出树上的三个点,要求确定一个集合点,使得这三个点到集合点的路径权值和最小。所有边权均为1。先考虑两个点A、B的情形。。显然这两个点间路径上的任何一点都可以作为集合点。。然后再加入第三个点C。。画个图不难证明此时最优集合点应是LCA(A... 阅读全文
posted @ 2015-12-16 21:22 Armeria 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 找规律题?(雾。。第一道A掉的题号2开头的题(雾。。题目要求的是第k个无平方因子数。。直接求并不好搞,所以我们二分答案,转而求区间 [1..x] 上的无平方因子数的个数。我们考虑sqrt(x)以内的质数。对于[1..x]内的整数,含有平方因子的数的数目应该排除。那么,我们减去每个质数的平方的倍数的个... 阅读全文
posted @ 2015-12-16 21:20 Armeria 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 这道题在白书上题解相当详细了。。作个总结。。令传递是单向的。。(传递的糖果数量可正可负)然后列出了n-1个方程。。然后一些奇怪的方程加减消元。。转化成了单变量的极值问题。。是这样的。。令Ci=Ai-M(M为最终每个人手中的糖果数量,Ai为初始糖果数量)于是ans=|x1| + |x1-C1| + |... 阅读全文
posted @ 2015-12-16 21:15 Armeria 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 这道题NOIP之前没码完。。身败名裂。。很明显的树上倍增啦。。但有一个问题是如何快速获得每个点的两个最近和次远。。用set。。完了。。细节见代码。。// NOIP2012 Day1 T3#include #include #include #include #include using namesp... 阅读全文
posted @ 2015-12-16 19:44 Armeria 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 本题需要用一点M(in & ax)ST的性质。。以MinestST(这英语也是十级水平。。)为例。。假设加入边(u, v),边权为L。然后我们把所有边权小于L的边都取出来单独看。这些边不能连通u, v,否则(u,v)边绝无可能在MST中——因为在加入它之后形成的这个环中,如果去掉它,显然是最优的。所... 阅读全文
posted @ 2015-12-16 00:04 Armeria 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 一道很基础的网络流建模。。本题输入的是前缀和,先用它们求出每行、每列的元素和然后将每一行看作一个节点(记作Xi),每一列看作一个节点(记作Yi),并新增源点S、汇点T。S往Xi连边,容量为这一行的元素和减1;Yi往T连边,容量同上。每个Xi往每个Yj连边,容量为20-1=19。之所以要将容量都减1,... 阅读全文
posted @ 2015-12-15 23:52 Armeria 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 最近有点不顺心。。时间安排上有点奇怪,然后很奇怪地每天只能睡五六个小时。。天天被某人D啊。。OI之路漫漫,我还是太弱太弱。以后做题准备纸笔。。题量以及一些常识积累不够的情况下,空想只会让效率低下。看了一个zj神犇的博客,然后感叹了一番强省弱省差距之大后,也应该庆幸。。一些基础内容并不熟练,先得把它们... 阅读全文
posted @ 2015-12-15 23:42 Armeria 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 本来以为用一些奇妙的枚举顺序可以直接卡过去,然后弃疗。。由题意可得 x^2 = 1 (mod n) ==> x^2 = k*n+1 ==> (x+1)(x-1) = k*n ==> n | (x+1)(x-1)然后枚举n的约数。设n=a*b (aa),再判断它+2是否能被a整除。反过来再判断一次。如... 阅读全文
posted @ 2015-12-14 20:07 Armeria 阅读(151) 评论(0) 推荐(0) 编辑
摘要: “很难想的一道题不过不难写”—— Po姐 这道题窝的思考过程十分坎坷。 首先想着纯DP,类似于NOIP Day2T2的方法搞。 设f[i][j]为强制将A[i]与B串中第j个相同字符匹配的LCS,s[i][j]为考虑到A[i]与B串中第j个相同字符匹配(且强制不允许选这个字符之后)的LCS。 ... 阅读全文
posted @ 2015-12-14 19:22 Armeria 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 例1:打砖块这道题的一个非常重要的细节是:只要子弹打光,就必须结束,无论是否还有可以打到的有奖励子弹的砖块。也就是说,有奖励子弹的砖块不等价于不耗费子弹就能获得分数。就是因为这个细节,我们需要双重递推。设f[i][j]表示第i列打j下能获得的分数,g[i][j]表示第i列打j下且第j下不能接着打有奖... 阅读全文
posted @ 2015-12-11 23:09 Armeria 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 这题就是个裸的线段树。。但细节容易想错。。题意:一个全0的序列,m次操作,每次给出一个区间[l,r)和一个值v,将该区间内所有小于等于v的数全部修改为v。求总的修改次数。怎么做呢?一开始我是这么做的:开一个线段树,每个节点维护一个值:该区间内的元素的值——如果该区间内元素值不同,则置为-1,... 阅读全文
posted @ 2015-12-11 22:46 Armeria 阅读(317) 评论(0) 推荐(0) 编辑