10 2014 档案

摘要:2014-10-3120:15:23总结:这场有点怪怪的吧,a比b难,c不难,然后d题虽然知道怎么写,但就是tle - =!A:求素数的原根个数,根据定理:如果正整数p是素数,那么其原根个数是phi(p-1),所以直接求一遍欧拉函数即可。12min(中速) (当然有人根据定义直接暴力检索也可以) ... 阅读全文
posted @ 2014-10-31 21:14 Naturain 阅读(158) 评论(0) 推荐(0)
摘要:2014-10-3117:19:18总结:这场cf前三题都好做,D的话有点诡异,st:533/3003A:简单构造,5min(太慢) 1 /************************************************************************* 2 ... 阅读全文
posted @ 2014-10-31 17:24 Naturain 阅读(146) 评论(0) 推荐(0)
摘要:2014-10-3114:44:33A:这个。。暴力即可。(cf的a,b基本就考考暴力、贪心,虽然在算法上没什么帮助,但能大大提高代码能力和准确性!) 1 /***********************************************************************... 阅读全文
posted @ 2014-10-31 15:05 Naturain 阅读(183) 评论(0) 推荐(0)
摘要:2014-10-3023:14:34A:直接模拟,需要注意的只有一点:如果顾客拿着100,那么可以找3张25或者1张50加一张25 1 /************************************************************************* 2 >... 阅读全文
posted @ 2014-10-30 23:32 Naturain 阅读(118) 评论(0) 推荐(0)
摘要:2014-10-3013:53:38A:话不多,模拟。 1 /************************************************************************* 2 > File Name: a.cpp 3 > Author: Natu... 阅读全文
posted @ 2014-10-30 14:00 Naturain 阅读(194) 评论(0) 推荐(0)
摘要:2014-10-2923:02:43不错的一道DP,练练思维。 1 /************************************************************************* 2 > File Name: b.cpp 3 > Author: ... 阅读全文
posted @ 2014-10-29 23:03 Naturain 阅读(141) 评论(0) 推荐(0)
摘要:2014-10-2813:37:43思路:LCA好题。尚认为自己没有实力写出题解,和大牛讨论下再写吧。 1 /************************************************************************* 2 > File Name: ... 阅读全文
posted @ 2014-10-28 13:38 Naturain 阅读(158) 评论(0) 推荐(0)
摘要:2014-10-2716:02:46LCA的做法不只一种,有朴素,在线倍增,离线tarjan等。在线倍增:void Dfs(int p,int pre,int d){ fa[0][p] = pre; dep[p] = d; for(int i = first[p]; ~i; i =... 阅读全文
posted @ 2014-10-27 16:06 Naturain 阅读(151) 评论(0) 推荐(0)
摘要:2014-10-2712:31:44转载一下大牛的百度空间:http://hi.baidu.com/aekdycoin/item/e051d6616ce60294c5d249d7【组合数求模】大家都在中学阶段学习了组合数的定义:这个表示的是从n个元素中选取m个元素的方案数。(PS.组合数求模似乎只用... 阅读全文
posted @ 2014-10-27 15:47 Naturain 阅读(115) 评论(0) 推荐(0)
摘要:2014-10-2712:18:44思路:求割顶裸题,这里的算法和scc的tarjan算法是在太像了,有异曲同工的妙。 理下思路:(1)链前向星建图(2)选根DFS(3)每个点都有low和dfn(时间戳)值(4)如果以u点的任一子节点为根的子树中没有一个点有返回u的祖先的反向边,那么u为割顶。(5... 阅读全文
posted @ 2014-10-27 12:21 Naturain 阅读(250) 评论(0) 推荐(0)
摘要:2014-10-2616:17:09思路:方向啥的不用管,直接双向边。注意,这样的构建的图是无向无根的树,我们要任选一个点做根将其转化为有根树即可,并且在DFS中不能回到父亲节点,这样就和正常的有向有根树一样了。另外这题的边是带权的,所以点的深度其实就是路径权和。 1 /*************... 阅读全文
posted @ 2014-10-26 16:21 Naturain 阅读(236) 评论(0) 推荐(0)
摘要:2014-10-2615:28:49思路:在线 / 离线LCA。练模板的。 1 /************************************************************************* 2 > File Name: 1330.cpp 3 >... 阅读全文
posted @ 2014-10-26 15:29 Naturain 阅读(120) 评论(0) 推荐(0)
摘要:2014-10-2612:13:10思路:lca启蒙题,比较裸的一题,水过吧。有离线Tarjan和在线倍增两种做法。离线Tarjan: 1 /************************************************************************* 2 ... 阅读全文
posted @ 2014-10-26 12:14 Naturain 阅读(139) 评论(0) 推荐(0)
摘要:2014-10-2504:02:59搞了三题,D题想到是线段树,有点思路。。。但最后没敲出来。A题:根据相邻两数互质,相邻奇数互质,判断一下 (1)l为奇数,那么r至少比大3。因为l=3,r=5,取3,4,5不符合;但l=3,r=6,取4,5,6就符合。那么l+1,l+2,l+3符合条件。 (2... 阅读全文
posted @ 2014-10-25 13:20 Naturain 阅读(188) 评论(0) 推荐(0)
摘要:2014-10-2402:09:31晚上开完Linux教程会就兴致勃勃的来打了场以前的cf,比赛中搞了4题,最后一题搞到2点才出来QAQ(其实就是个二分)A:算块数。 1 /***************************************************************... 阅读全文
posted @ 2014-10-24 02:27 Naturain 阅读(144) 评论(0) 推荐(0)
摘要:2014-10-2222:42:20花了几个小时做了四道题。B题大模拟...搞了很久,最后是把繁琐的STL全部去掉才过的TAT。 1 #include 2 #include 3 #include 4 using namespace std; 5 typedef long long l... 阅读全文
posted @ 2014-10-22 23:08 Naturain 阅读(154) 评论(0) 推荐(0)
摘要:2014-10-2210:55:22思路:POJ 2-SAT六题完结了。。这题依旧是二分答案,然后2-SAT判断,需要注意的是二分姿势以及每次二分都要重新建图。 1 /*****************************************************************... 阅读全文
posted @ 2014-10-22 10:57 Naturain 阅读(125) 评论(0) 推荐(0)
摘要:2014-10-2116:24:18思路:传统的2-SAT题,自己YY了建图,也是醉了。写完这题坚定了二分区间左闭右开的写法。 方法:首先二分能打开的门数,然后建图:枚举每一对门(A,B),不妨令A门比B门先遇到,(以A、A’ 来分别表示打开A的第一个锁和第二个锁)找矛盾建“必须”边,如:A和B’... 阅读全文
posted @ 2014-10-21 16:34 Naturain 阅读(96) 评论(0) 推荐(0)
摘要:2014-10-2115:12:37思路:自己断断续续搞了差不多两个小时吧,把这题A掉,2-sat也学的差不多了。 做法就是把每个婚礼看成连个点,i 和 i' 分别表示牧师在婚礼开始时祝福、在婚礼结束时祝福。于是我们就能获得每个婚礼的两个祝福时间段。两层循环扫一遍每两个婚礼,判断他们两个时间段是否... 阅读全文
posted @ 2014-10-21 15:18 Naturain 阅读(151) 评论(0) 推荐(0)
摘要:2014-10-20 16:18:15 时间匆匆,如白驹过隙。 阴差阳错地进入这个专业,进入acm这个圈子,已有一年多时间了。 此刻抬起头,看着漫无天际的云,不禁想:如果当时不是走这条路,现在又是怎样?如果当时从医,又是怎样?如果没来苏大,又是怎样?如果没搞acm,又是怎样?..如果,如果... 凌 阅读全文
posted @ 2014-10-20 16:33 Naturain 阅读(387) 评论(1) 推荐(1)
摘要:2014-10-2016:09:58思路:2-SAT好题。0,2,4...表示husband,1,3,5...表示wife 。我把任务定义为选择坐在新娘对面的人。 限制条件:(1)有暧昧关系的一对不能同时坐在新娘对面,所以根据每一对(i,j),连边 i->j' , j -> i'这两条必须边。 ... 阅读全文
posted @ 2014-10-20 16:17 Naturain 阅读(262) 评论(0) 推荐(0)
摘要:2014-10-1913:55:03思路:典型的2分+2-SAT,给题目数据范围跪了,之前RE到寺,我开到1000才过QAQ。 首先二分边长d 。 建图:分类讨论,如果两点间x坐标绝对值差>=d则不用建边,如果x坐标绝对值=2d不用建边(2)y坐标绝对值差=d(3)y坐标绝对值差0(4)y绝对值... 阅读全文
posted @ 2014-10-19 14:04 Naturain 阅读(118) 评论(0) 推荐(0)
摘要:2014-10-1900:01:58思路:比赛时只知道要用到线段树,但不知道怎么解决计数问题QAQ。看了题解幡然醒悟,果断1A。 这个巧妙的方法就是利用矩阵来计数,用2*2的矩阵来存门与门之间的连通情况,然后我们发现两个矩阵相乘后矩阵内数的和的含义就是所要计的数。 矩阵的行表示从哪个门出发,列表... 阅读全文
posted @ 2014-10-19 00:18 Naturain 阅读(233) 评论(0) 推荐(0)
摘要:2014-10-1822:57:04思路:BC #14 的第三题,当时用记忆化搜索过了present然后FST就跪了-。-,原因是考虑了空余点导致费时。正确的姿势是只考虑有石头的点,再配上状压就能妥过,记忆化 / 递推皆可,这里采用简洁的递推。dp[i][j] 表示到达第 i 个石头,且状态为 j ... 阅读全文
posted @ 2014-10-18 23:03 Naturain 阅读(161) 评论(0) 推荐(0)
摘要:2014-10-1817:29:09思路:这题就是需要正确建图,其他的就是模板了。输入的时候处理下使得输入的两个点前小后大,输入完后对所有的一对边扫一遍,找出矛盾边对,建图即可。 (写这题前还是不懂tarjan为什么能够解决2-SAT问题,后来想的比较通了:比如 Si,Si’ 是拆成的一组点,显然... 阅读全文
posted @ 2014-10-18 17:33 Naturain 阅读(130) 评论(0) 推荐(0)
摘要:2014-10-1622:56:40思路:一道比较明显的2-SAT(好吧,做到现在2-SAT的题目都挺明显的QAQ),答案不大,直接二分答案来做,要注意的建图过程。 核心是找必须条件,如果 distance(i,j) File Name: 3622.cpp 3 > Author: Na... 阅读全文
posted @ 2014-10-16 23:08 Naturain 阅读(181) 评论(0) 推荐(0)
摘要:2014-10-1621:08:49思路:这道算经典的2-SAT了,各种操作。(设A0,A1分为别指派A点为真 / 假) 比较奇妙的是(1)令A点为真,则建边:A0 -> A1 (2)令A点为假,则建边:A1 -> A0 这样的话如果:A的指派为真,一旦到A0这个点那么必须到A1,... 阅读全文
posted @ 2014-10-16 21:18 Naturain 阅读(141) 评论(0) 推荐(0)
摘要:2014-10-1523:46:02思路:2-SAT 启蒙题,很裸很粗暴。直接敲,基本思路:把每个家庭的妻子和丈夫各看做一个点,链前向星建图,一条关系建两条边,然后循环一遍Dfs所有点,每个点Dfs两次(分别指派这个点为真和假),只要发现某次Dfs能成功遍历完一圈那么说明这个真值指派是可行的,即可退... 阅读全文
posted @ 2014-10-15 23:53 Naturain 阅读(229) 评论(0) 推荐(0)
摘要:2014-10-1522:36:29思路:挺好的一道动规题,需要仔细分析。怒粘一篇std题解。1003 Find Sequence首先考虑解的结构一定是C1,C1,…,C1,C2,C3,…,Cm这种形式,其中满足C1cj 所以满足ci−ck≤cj−ci的dp[k][i]必然满足ci−ck≤cj+1−... 阅读全文
posted @ 2014-10-15 22:38 Naturain 阅读(114) 评论(0) 推荐(0)
摘要:2014-10-1423:01:26最近学了一发强连通分量,来小结一下。一、定义:在一个有向图中,如果任意两个点都是“相互可达”的,那么说这个图是强连通的。有向图的极大强连通子图,称为强连通分量(strongly connected components)。易得:强连通图的强连通分量就它自己。二、具... 阅读全文
posted @ 2014-10-14 23:31 Naturain 阅读(173) 评论(0) 推荐(0)
摘要:2014-10-1422:55:29思路:典型的SCC问题,直接强连通+缩点,搞出DAG后我们发现,如果某个点k满足:除k外其他所有点都能到达k,那么k这个scc里的牛都是popular的。换句话说k这个点是DAG的终点,所以只要找出出度为零的点即可。(注意要判断出度为零的点的个数,>1的话说明DA... 阅读全文
posted @ 2014-10-14 22:59 Naturain 阅读(166) 评论(0) 推荐(0)
摘要:2014-10-1422:32:45思路:求出结果最大的子序列,奇数位置+,偶数位置- 。发现只要找出整个序列的极大值点和极小值点就可,极大值点要+,极小值点要- 。找完后从头到尾扫一遍,根据需要找点(比如当前是奇数位置,那么就要找下一个极大值点;当前是偶数位置,那么就要找下一个极小值点) 1 /*... 阅读全文
posted @ 2014-10-14 22:35 Naturain 阅读(256) 评论(0) 推荐(0)
摘要:2014-10-1421:44:18思路:问一个图是否是单连通的。先对全图求一次SCC,可以知道每个SCC内的点都是单连通的,那么把每个SCC缩点构建出DAG之后再判断这个DAG是否单连通即可,方法是DAG动规找出最长链,如果最长链上的点个数等于SCC个数,那么DAG单连通。(因为如果最长链都不能覆... 阅读全文
posted @ 2014-10-14 21:48 Naturain 阅读(331) 评论(0) 推荐(0)
摘要:2014-10-1419:19:50思路:这题取名为最大团(表示不知道何物,以后学QAQ)。其实就是求一次全图的所有强连通分量,然后缩点。缩点的方法请教了通神,方法:做一次tarjan后,再扫一遍原图中的所有边,如果这条边所连接的两个点在同个scc中则不用连边,否则在两个scc间建一条有向边(这里的... 阅读全文
posted @ 2014-10-14 19:28 Naturain 阅读(549) 评论(0) 推荐(0)
摘要:2014-10-1402:19:23思路:大白书的例题,挺好的强连通分量入门题。问题的大意就是问最少添加几条边能使一个有向图强连通。做法是,先求一遍强连通分量,然后把每个强连通分量缩点,这样实际上就形成了DAG,接下来只要判断每个缩点的入度和出度,找出入度为0的点个数a1,出度为0的点个数a2,然后... 阅读全文
posted @ 2014-10-14 02:25 Naturain 阅读(201) 评论(0) 推荐(0)
摘要:2014-10-1317:16:55思路:首先根据王子喜欢的公主建边:王子 -> 女孩,然后根据wizard给出的list建反向边:女孩 -> 王子。然后求强连通分量,每个王子能结婚的女孩与他在同一个强连通分量里且是他喜欢的。至于为什么这样做,我的想法是:如果我们要改变wizard给出的正确的匹配l... 阅读全文
posted @ 2014-10-13 17:37 Naturain 阅读(151) 评论(0) 推荐(0)
摘要:2014-10-1216:06:26思路:dp[a][b][k]表示用k个棋子使得a × b的棋盘达到要求的概率,递推即可。用的正推(反推没想出来QAQ) 1 /*********************************************************************... 阅读全文
posted @ 2014-10-12 16:08 Naturain 阅读(160) 评论(0) 推荐(0)
摘要:2014-10-1022:37:06思路:这题给树链剖分学习的第一个阶段画上了一个句号,一开始看的时候线段树乱搞都没搞出来 orz。后来看了结题报告发现自己 too young。 首先把点构成的树剖分是没有悬念的,接下来如果直接用线段树搞的话,节点维护什么呢?每种颜色及其次数吗?显然不行。转换下思... 阅读全文
posted @ 2014-10-10 22:52 Naturain 阅读(227) 评论(0) 推荐(0)
摘要:2014-10-1020:24:54思路:树链剖分是比较好想到的,关键线段树如何实现。线段树每个节点维护五个值:add,tmax(区间最大值),tmin(区间最小值),ans1(向右走最大利润),ans2(向左走最大利润)。然后ans1是由右儿子最大值 - 左儿子最小值得到,ans2反过来。然后在树... 阅读全文
posted @ 2014-10-10 20:28 Naturain 阅读(238) 评论(0) 推荐(0)
摘要:2014-10-0900:32:18思路:像这样的规律题一定要能想到DP,dp[i][j]表示长度为 i 的字串,从结尾开始往前数有 j 个不重复的元素,令该值为subnum。(当 j 达到 k + 1时显然字串非法) 对于长度为 i - 1,subnum为 j 的字串:在结尾加上一个元素可能使得... 阅读全文
posted @ 2014-10-09 00:42 Naturain 阅读(335) 评论(0) 推荐(0)
摘要:2014-10-0821:43:43思路:这题写了好久,一开始直接树链剖分,果断TLE。后来发现可以把加法树也转化为线性结构(核心思想),当然用树状数组也可以。 关于处理边的方法:把边的编号对应到它的较深点,形象的理解为边下沉一级。所以处理边时,在遍历树链时要格外注意。 1 /*********... 阅读全文
posted @ 2014-10-08 21:46 Naturain 阅读(153) 评论(0) 推荐(0)
摘要:2014-10-0718:33:08思路:6题场,真激情~因为unrated,水过D就滚粗了QAQ。A、B、C没搞,听说C是个裸暴力,卡long long 0.0。D:不多说了,dp转移方程:dp[i] = dp[i - 1] + dp[i - k]E:离散化后用线段树维护一个DP,因为有输出路径的... 阅读全文
posted @ 2014-10-07 18:46 Naturain 阅读(133) 评论(0) 推荐(0)
摘要:2014-10-0622:08:46思路:一道裸的树剖,线段树维护的是边,所以姿势稍有不同。建树的过程不用另开Build函数,而使用Update将边一条一条更新进树中。 要注意!线段树中第 i 个叶子节点存的是第 i - 1条边。(这样就使得第一条边为根节点与其父节点的边,是虚的边) 1 /**... 阅读全文
posted @ 2014-10-06 22:12 Naturain 阅读(184) 评论(0) 推荐(0)
摘要:2014-10-0620:43:27思路:给这题跪了。。推了好久- = 数学太渣。 学到了一个重要的公式(其实自己推推也很快出来的):球冠公式:pi * h^2 * (3R - h) / 3,R为球的半径,h为球冠的高。 1 /***********************************... 阅读全文
posted @ 2014-10-06 20:46 Naturain 阅读(171) 评论(0) 推荐(0)
摘要:2014-10-0615:13:20这场CF有点丧病QAQ。A:打表画图题,先用二维数组存图,然后输出。(写的搓搓的~) 1 /************************************************************************* 2 > File... 阅读全文
posted @ 2014-10-06 15:36 Naturain 阅读(152) 评论(0) 推荐(0)
摘要:2014-10-0517:12:36思路:树链剖分+线段树入门题,有两个操作,写的有点长了。注意细节和姿势就好。 1 /************************************************************************* 2 > File N... 阅读全文
posted @ 2014-10-05 17:13 Naturain 阅读(148) 评论(0) 推荐(0)
摘要:2014-10-0516:30:43思路:权在点上的线段树,加上树链剖分即可。注意这题容易RE爆栈,要手动扩栈! 1 /************************************************************************* 2 > File N... 阅读全文
posted @ 2014-10-05 16:32 Naturain 阅读(166) 评论(0) 推荐(0)
摘要:2014-10-0513:10:03思路:树链剖分启蒙题。树链剖分就是把一棵树剖分成轻链和重链。一个节点的重儿子的含义:所有儿子中以其为根的子树最大的子节点。主要维护的几个值:son[p]:p的重儿子top[p]:p所在链的顶节点fa[p]:p的父亲节点sz[p]:以p为根的子树的结点数dep[p]... 阅读全文
posted @ 2014-10-05 16:30 Naturain 阅读(135) 评论(0) 推荐(0)
摘要:2014-09-1221:49:59 ->2014-10-0416:59:44花了挺长的一段时间学习线段树,所刷的题:POJ线段树20题汇总,Hdu题库数道+比赛题2道。与刚开始学连函数结构都要翻书相比,现在线段树已经实现自己较熟练地手敲。线段树这种结构,主要优势在于把区间问题从O(n)的复杂度优化... 阅读全文
posted @ 2014-10-04 17:32 Naturain 阅读(166) 评论(0) 推荐(0)
摘要:2014-10-0416:53:30思路:这题是个很裸的线段树 or 树状数组题,因为加了内存限制而变得有点意思。参考了别人博客,有两种做法:(1)在线做法:将树状数组中的c[]数组变为:c[]和re[],分别表示数量 / 32768的商 和 数量除以32768后的余数,也就是原先的c[i] = c... 阅读全文
posted @ 2014-10-04 16:59 Naturain 阅读(203) 评论(0) 推荐(0)
摘要:2014-10-0415:06:38思路:这题乍一看不怎么会,后来看题解才知道要离线处理。知道了这个之后自己瞎搞暴力了一通,竟然过了- -!后来用树状数组加速了下。 大概思路就是,把所有询问读进来,按照询问的右端点升序排序,然后从左到右依次扫所有值(离散后),都加入树状数组,如果发现该值在之前已经... 阅读全文
posted @ 2014-10-04 15:11 Naturain 阅读(192) 评论(0) 推荐(0)
摘要:2014-10-0302:22:29思路:一道线段树+DFS序列的好题,考察很全面,题解很多不赘述了,训练了DFS序列以及把边转化为点的思想。(用cin没关同步会TLE) 1 /************************************************************... 阅读全文
posted @ 2014-10-03 02:23 Naturain 阅读(222) 评论(0) 推荐(0)
摘要:2014-10-0300:44:18思路:DFS序列处女题,接触了下把树形结构转化为线性结构的思想,时间戳是个好思想。恩恩,就这样,题目挺裸的,再加个树状数组就水过了。 1 /**************************************************************... 阅读全文
posted @ 2014-10-03 00:47 Naturain 阅读(95) 评论(0) 推荐(0)
摘要:2014-10-0222:30:57思路:这题让我熟悉了扫描线的思想。为什么扫描线的Update是精确更新?(即:查询区间刚好等于当前区间)因为这种扫描线写法没有query,所以不能用lazy的思想。好了,上面都是题外话。考虑到这题的矩形个数很小 File Name: 3695.cpp 3 ... 阅读全文
posted @ 2014-10-02 22:36 Naturain 阅读(187) 评论(0) 推荐(0)
摘要:2014-10-0123:19:30思路:这题可以说是线段树各种操作的集大成者,包含区间更新,区间最值,lazy思想等。和poj1823是姐妹篇。 这题的几个点:(1)每个节点维护一个cover值,-1表示全空,1表示全满,0表示一部分空(建树时预设全空:-1) 每个节点维护三个长度值:llen... 阅读全文
posted @ 2014-10-02 00:16 Naturain 阅读(199) 评论(0) 推荐(0)
摘要:2014-10-0120:44:42思路:倒着考虑,比如现在考虑到了第 k 个,他要排到第 p 个位置,那么一定要让他前面有 p-1 个空位,用线段树维护即可,每个节点存这段区间内空位个数。、 1 /**************************************************... 阅读全文
posted @ 2014-10-01 20:46 Naturain 阅读(185) 评论(0) 推荐(0)
摘要:2014-10-0116:53:27思路:比较裸的线段树,考的是离散化和线段更新,即:叶子节点表示线段。 1 /************************************************************************* 2 > File Name: 3... 阅读全文
posted @ 2014-10-01 16:54 Naturain 阅读(194) 评论(0) 推荐(0)
摘要:2014-10-0115:31:32思路:这题调了我N久,二分的基础还是弱QAQ。我的方法是:用首先用树状数组来维护出入队的情况,初始1-N都是1,第k个人出队,则k的位置减一。在找下一个人的位置的时候用二分,注意:二分查到的位置不能是已经出队的人!借鉴了别人优雅的反素数求法。~~~~ 1 /***... 阅读全文
posted @ 2014-10-01 15:34 Naturain 阅读(268) 评论(0) 推荐(0)
摘要:2014-10-0114:32:29反素数:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0 File Name: atp.cpp 3 > Author: Nature 4 > Mail: 564374850@qq.co... 阅读全文
posted @ 2014-10-01 14:33 Naturain 阅读(204) 评论(0) 推荐(0)