05 2015 档案

摘要:推公式/二分法 好题! 题解:http://blog.csdn.net/zck921031/article/details/7690288 这题明显是一个方程组……可以推公式推出来…… 然而这太繁琐了!发现a[i]是满足单调性的话,我们就可以二分a[1],递推出a[n+1],进行验证…… ... 阅读全文
posted @ 2015-05-27 21:36 Tunix 阅读(206) 评论(0) 推荐(0)
摘要:树的最小表示法 给定两个有根树的dfs序,问这两棵树是否同构 题解:http://blog.sina.com.cn/s/blog_a4c6b95201017tlz.html题目要求判断两棵树是否是同构的,思路是用树的最小表示法去做。这里用的最小表示法就是将树的所有子树分别用1个字符串表示,要按字... 阅读全文
posted @ 2015-05-27 20:49 Tunix 阅读(303) 评论(0) 推荐(0)
摘要:K短路/A* 经(luo)典(ti) K短路题目= = K短路学习:http://www.cnblogs.com/Hilda/p/3226692.html 流程: 先把所有边逆向,做一遍dijkstra,得到估价函数h(x)(x到T的最短路距离) f(x)=g(x)+h(x) 按f(x)... 阅读全文
posted @ 2015-05-25 18:13 Tunix 阅读(329) 评论(0) 推荐(0)
摘要:Burnside/Polya+背包DP 这道题目是等价类计数裸题吧……>_> 题解:http://m.blog.csdn.net/blog/njlcazl_11109/8316340 啊其实重点还是:找出每个置换下的不动点数目 这道题比较特殊,牌的数量是限定的,所以只能DP来搞……(dp[R... 阅读全文
posted @ 2015-05-25 11:42 Tunix 阅读(254) 评论(0) 推荐(0)
摘要:Burnside & Pólya(详细内容请参阅《组合数学》或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎留言)Burnside: 我们要证明的是:$$N(G,C)=\frac{1}{|G|} \sum_{f \in G}|C... 阅读全文
posted @ 2015-05-25 10:15 Tunix 阅读(632) 评论(0) 推荐(2)
摘要:KD-Tree 啊哈~检验了一下自己KD-Tree的学习情况,还算可以,模板至少是记下来了。 支持插入(所以要带重建),查询最近的P个点的距离。 然而题目并没有说是按怎样的顺序输出这P个点?。。。(事实上是从近到远) 没啥好讲的……就是KD-Tree的裸操作…… 1 //Tsins... 阅读全文
posted @ 2015-05-24 11:09 Tunix 阅读(363) 评论(0) 推荐(0)
摘要:模拟+链表+DP OrzAK爷faebdcA Growin要跟全部的n个人握手共2n杯香槟,再加上每对关系的两杯香槟,直接统计邻接矩阵中1的个数,再加2n就是answer 1 //BestCoder 42 A 2 #include 3 #include 4 #include 5 #include... 阅读全文
posted @ 2015-05-23 22:21 Tunix 阅读(186) 评论(0) 推荐(0)
摘要:Kruskal/最小树形图 然而蒟蒻并不会做这题>_> 本来以为是有向图最小生成树,即最小树形图,但这数据范围有点…… 膜拜了zyf的题解:http://www.cnblogs.com/zyfzyf/p/4004236.html题解:(摘自声亦香)因为只能从高处到低处,所以无向边可以当有向边看... 阅读全文
posted @ 2015-05-23 18:23 Tunix 阅读(303) 评论(0) 推荐(0)
摘要:网络流/最小割/最大权闭合图 2333好开心,除了一开始把$500^2$算成25000……导致数组没开够RE了一发,可以算是一次AC~ 咳咳还是回归正题来说题解吧: 一拿到这道题,我就想:这是什么鬼玩意……矩阵乘法早忘了……画了半天也想不起来到底是谁乘谁,只记得有个式子:$c[i][j]=\s... 阅读全文
posted @ 2015-05-22 21:38 Tunix 阅读(326) 评论(0) 推荐(2)
摘要:KD-Tree(乱搞) Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?。。。Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]),其中 i 满足$ ( pre[i]qr\ and\ i \in [ql,qr] ) $ 然... 阅读全文
posted @ 2015-05-22 17:36 Tunix 阅读(716) 评论(0) 推荐(1)
摘要:KD-Tree 问平面内在某条直线下方的点的权值和 我一开始yy的是:直接判这个矩形最高的两个点(y坐标的最大值)是否在这条直线下方就可以了~即判$A*x+B*y12 #include13 #include14 #include15 #include16 #define rep(i,n) for... 阅读全文
posted @ 2015-05-22 11:07 Tunix 阅读(336) 评论(0) 推荐(1)
摘要:KD-Tree KD-Tree的进阶姿势戳这里 http://zyfzyf.is-programmer.com/posts/92431.html 为啥有种线段树&平衡树的即视感……(树形结构的相似性?) 每次插入之后,判断下如果某个子树的size>父亲size*0.7,那么重构一下……(替罪羊... 阅读全文
posted @ 2015-05-22 08:37 Tunix 阅读(411) 评论(0) 推荐(0)
摘要:KD-Tree 0.0找第k大…… 裸KD-Tree……跟之前那道找最近的k个点大同小异 一开始理解错:第K大是第K远……不是第K近……(Tunix你个sb 感觉容易出错的是0号点= =边界情况需要仔细处理……根据题意而定的,比如这题就必须将0号点的距离设置成最近……比如-2……(因为我一开... 阅读全文
posted @ 2015-05-20 21:08 Tunix 阅读(331) 评论(0) 推荐(0)
摘要:KD-Tree 一开始看错题了 其实是:给定n个点,从中找一个点,使得其他所有点到它距离的最大值与最小值之差最小。 利用KD-Tree暴力求出每个点的答案(找离它最近的点以及最远的点(当然只关心距离)) 然后……两个过程分开写…… 注意一下最近的点的距离不能是0(然而我一开始用 if (o... 阅读全文
posted @ 2015-05-20 17:17 Tunix 阅读(581) 评论(0) 推荐(0)
摘要:模拟+堆+链表+贪心+最小生成树+倍增LCA这次题目简单了许多……然而蒟蒻还是傻逼了……sad连NOIP题都做这么烂……没救了File 给定一些目录&文件,让按给定格式输出一个文件列表 其实直接排序一下,就可以满足字典序的条件了,顺便还能使在同一目录下的文件顺序连在一起,然后模拟一下“dfs”的... 阅读全文
posted @ 2015-05-20 11:43 Tunix 阅读(174) 评论(0) 推荐(1)
摘要:KD-Tree 题目大意:K维空间内,与给定点欧几里得距离最近的 m 个点。 KD树啊……还能怎样啊……然而扩展到k维其实并没多么复杂?除了我已经脑补不出建树过程……不过代码好像变化不大>_> 然而我WA了。。。为什么呢。。。我也不知道…… 一开始我的Push_up是这么写的:inline ... 阅读全文
posted @ 2015-05-19 20:32 Tunix 阅读(524) 评论(0) 推荐(0)
摘要:树状数组/前缀和 Orz lct1999 好神的做法。。。 先看下暴力的做法:对于区间[l,r],我们依次扫过去,如果这个数是第一次出现,那么我们种类数+1。 我们发现:区间中相同的几个数,只有最左边那个才对答案有贡献。 那么我们O(n)预处理一个next数组,满足a[i]=a[next[... 阅读全文
posted @ 2015-05-19 17:28 Tunix 阅读(239) 评论(0) 推荐(0)
摘要:KD-Tree 传说中的kd树。。。前去膜拜了一下……写道模板题>_ 12 #include 13 #include 14 #include 15 #include 16 #define rep(i,n) for(int i=0;i=n;--i) 19 #define pb push_back 2... 阅读全文
posted @ 2015-05-19 11:49 Tunix 阅读(301) 评论(0) 推荐(0)
摘要:然而UER我也照样跪……第一题 忘了取模sad || 操作符将整个区间分成了一些段,每个手机只会执行其中某一段,执行次数为这一段中&&的个数?+1? ans=ans*num[i]+1 倒着搞了一遍就过了?……然而我并不知道为什么…… 1 //UER 2 A 2 #include 3 #inc... 阅读全文
posted @ 2015-05-18 11:08 Tunix 阅读(198) 评论(0) 推荐(0)
摘要:最短路+TSP+最小生成树+倍增LCA+TreeDP第一题 其实是个TSP问题(然而我没发现),但是关键点很少,只有5个,所以用dij+heap分别预处理出来这五个点为源的最短路…… 然后枚举起点 i ,枚举这5个点的经过顺序,然后O(1)处理答案就可以了…… 容易写错的地方是 五个点的标号(... 阅读全文
posted @ 2015-05-18 11:04 Tunix 阅读(219) 评论(0) 推荐(0)
摘要:康托展开 裸的康托展开&逆康托展开 康托展开就是一种特殊的hash,且是可逆的…… 康托展开计算的是有多少种排列的字典序比这个小,所以编号应该+1;逆运算同理(-1)。 序列->序号:(康托展开) 对于每个数a[i],数比它小的数有多少个在它之前没出现,记为b[i],$ans=1+\s... 阅读全文
posted @ 2015-05-18 08:45 Tunix 阅读(413) 评论(0) 推荐(1)
摘要:枚举+组合数?+DP+数学问题 http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=582 QAQ许久没打过比赛,来一发BC,结果还是只能做前两题……too young too naive了…… 不过这场比赛前两题被hack&FS... 阅读全文
posted @ 2015-05-17 11:34 Tunix 阅读(313) 评论(0) 推荐(1)
摘要:倍增+Floyd 题解:http://www.cnblogs.com/lmnx/archive/2012/05/03/2481217.html 神题啊= =Floyd真是博大精深…… 题目大意为求S到E,恰好经过N条边的最短路径(姑且称为路径吧,虽然好像已经不是了……) 总共只有大约200个... 阅读全文
posted @ 2015-05-16 21:27 Tunix 阅读(231) 评论(0) 推荐(0)
摘要:曼哈顿距离与切比雪夫距离 QAQ蒟蒻并不知道切比雪夫距离是什么……并不会做这道题…… 去膜拜了PoPoQQQ大爷的题解:题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小与3170不同的是这次选择的点无需是n个点中的一个首先将每个点(x,y)变为(x+y,x-y) 这样新点之... 阅读全文
posted @ 2015-05-16 17:35 Tunix 阅读(373) 评论(0) 推荐(0)
摘要:字符串Hash+可持久化线段树 好神奇的转化…… 蒟蒻一开始还去想AC自动机去了……然而由于a[i]的范围是小于等于n,怎么也想不出一个时间复杂度合理的方法 膜拜了题解0。0原来是字符串Hash! 首先每个询问的长度都是固定的!K!那么我们就可以看作一个长度为K的数!然后就可以利用字符串... 阅读全文
posted @ 2015-05-16 10:45 Tunix 阅读(248) 评论(0) 推荐(0)
摘要:Prufer序列/排列组合+高精度 窝不会告诉你我是先做了BZOJ1211然后才来做这题的>_>(为什么?因为我以前不会高精度呀……) 在A了BZOJ 1211和1089之后,蒟蒻终于有信心来写这道神题啦= = 嗯还是先说下做法吧~ …… 还是出门左转去看黄学长的博客吧……我懒得写了…... 阅读全文
posted @ 2015-05-15 21:38 Tunix 阅读(173) 评论(0) 推荐(1)
摘要:高精度/递推 Orz Hzwer…… 然而我想多了…… 理解以后感觉黄学长的递推好精妙啊 顺便学到了一份高精度的板子= =233 引用下题解:f[i]=f[i-1]^n+1ans=f[d]-f[d-1]然后加个高精度。。。话说这个数据范围是虚的吧。。。极限数据根本不会做。。 1 /****... 阅读全文
posted @ 2015-05-15 20:26 Tunix 阅读(259) 评论(0) 推荐(1)
摘要:蒟蒻的模板库突然发现模板什么的需要存一下了= =因为蒟蒻并没有全部记住……一些算法/数据结构的模板就放自己其他博文的链接了,另一些会在这里直接写下来。以前的我会慢慢整理……今天先写一个→_→(明显还是在偷懒啊喂!能不能靠谱一点啊?)数学相关: 1 void add(int k,int v){ 2 /... 阅读全文
posted @ 2015-05-15 17:49 Tunix 阅读(517) 评论(0) 推荐(0)
摘要:Prufer序列+组合数学 嗯哼~给定每个点的度数!求树的种数!那么很自然的就想到是用prufer序列啦~(不知道prufer序列的……自己再找找资料吧,这里就不放了,可以去做一下BZOJ1005明明的烦恼) 那么我们令每个点的度数v[i]-1,得到每个节点在prufer序中的出现次数! 现在... 阅读全文
posted @ 2015-05-15 17:44 Tunix 阅读(212) 评论(0) 推荐(1)
摘要:数论 Orz iwtwiioi 果然数论很捉鸡>_>完全不知道怎么下手 $$x^2 \equiv 1 \pmod n \rightarrow (x+1)*(x-1)=k*n $$ 所以,我们得到$$n | (x+1)(x-1)$$ 那么有什么用呢?注意到整除是个神奇的关系= =所以我们可以... 阅读全文
posted @ 2015-05-15 09:45 Tunix 阅读(176) 评论(0) 推荐(0)
摘要:二分图完美匹配/匈牙利算法 如果a[i][j]为黑点,我们就连边 i->j ,然后跑二分图最大匹配,看是否有完美匹配。 12 #include13 #include14 #include15 #include16 #define rep(i,n) for(int i=0;i=n;--i)19 #... 阅读全文
posted @ 2015-05-15 08:28 Tunix 阅读(200) 评论(0) 推荐(1)
摘要:数学期望/线段树 然而又是一道road= =上一道是2750…… 下次不要一看期望题就弃疗么…… 期望题≠不可做题……!! 其实在这题中,期望就是(所有情况下 权值之和)/(总方案数) 因为是等概率抽取区间啊= =2333 然而分母很好搞,直接就能算出来,所以我们要来搞分子…… 分子其... 阅读全文
posted @ 2015-05-14 21:11 Tunix 阅读(254) 评论(0) 推荐(0)
摘要:简单写下自己的理解吧……Pack 三种物品的背包: 1. $v(x)=A*x^2-B*x$ 价值随所分配的体积的变化而变化…… 2. 多重背包 3. 完全背包 其实是个傻逼题,因为数据规模小,暴力就能过,然而由于没见过第一种物品的价值函数,加上题目描述不清楚,所以自己傻逼了... 阅读全文
posted @ 2015-05-14 15:21 Tunix 阅读(221) 评论(0) 推荐(0)
摘要:树链剖分/dfs序 其实过了【BZOJ】【4034】【HAOI2015】T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果root在x的子树中(以1为根dfs的时候),那么现在x的子树就变成了整个dfs序中,除去含有r... 阅读全文
posted @ 2015-05-13 20:32 Tunix 阅读(312) 评论(0) 推荐(0)
摘要:计算几何/旋转卡壳 从已知点中选出四个使得选出的四边形面积最大,很明显我们应该在凸包上搞。 我一开始的思路是:枚举 i ,找到 i 的对锺点cur1,这两个点将凸包分成了两半,我们在左半中枚举一个 j ,然后在右半中找一个离 j 最远的“对锺点”(可能不是?反正找的是最远……)cur2,然后求c... 阅读全文
posted @ 2015-05-13 17:31 Tunix 阅读(201) 评论(0) 推荐(0)
摘要:计算几何/旋转卡壳 学习旋转卡壳请戳这里~感觉讲的最好的就是这个了…… 其实就是找面积最大的三角形?。。。并且满足单调…… 嗯反正就是这样…… 这是一道模板题 好像必须写成循环访问?我在原数组后面复制了一遍点,结果挂了……改成cur=cur%n+1就过了QAQ//其实是不是数组没开够所以复... 阅读全文
posted @ 2015-05-13 16:02 Tunix 阅读(243) 评论(0) 推荐(0)
摘要:计算几何/半平面交 本来我是想去写POJ 1755的,然后想起了这道跟它很像的题,但应该是弱化版,所以就先写了这个…… 我们可以发现每个人的总用时,与k是呈一次函数关系的:$time_i=\frac{k}{Vrun_i}+\frac{S-k}{Vride_i}$ 然而我们要找的是某个k,使得$... 阅读全文
posted @ 2015-05-13 11:13 Tunix 阅读(412) 评论(0) 推荐(0)
摘要:树链剖分/dfs序 树上单点修改+子树修改+链查询 其实用dfs序做也可以…… 其实树链剖分就是一个特殊的dfs序嘛= =所以树链剖分也可以搞子树~(Orz ZYF) 至于为什么……你看在做剖分的时候不也是dfs下去的?然后只不过是先走重儿子,但本质上也是一个dfs序,所以dfs序能搞的子树... 阅读全文
posted @ 2015-05-12 21:39 Tunix 阅读(489) 评论(0) 推荐(1)
摘要:贪心 树上贪心问题……跟APIO2015练习赛的C很像啊…… 我的思路是:从叶子向上考虑,令a[x]表示x这个节点上樱花数量与儿子个数的和(即对于任意的x,都有$a[x]\leq m$)每次从儿子的a值中贪心地选最小的加到当前节点中(当然还要-1),然后就不用管了……因为如果某个儿子不能删去,将... 阅读全文
posted @ 2015-05-12 17:44 Tunix 阅读(398) 评论(0) 推荐(0)
摘要:二分+计算几何/半平面交 半平面交的学习戳这里:http://blog.csdn.net/accry/article/details/6070621 然而这题是要二分长度r……用每条直线的距离为r的平行线来截“凸包” 做平行线的方法是:对于向量(x,y),与它垂直的向量有:(y,-x)和(-y... 阅读全文
posted @ 2015-05-12 16:26 Tunix 阅读(295) 评论(0) 推荐(0)
摘要:计算几何/半平面交 裸的半平面交,关于半平面交的入门请看神犇博客:http://blog.csdn.net/accry/article/details/6070621 然而代码我是抄的proverbs的…… 大体思路是这样的:(一个增量算法) 维护一个当前的半平面交的点集,每次用一条直线... 阅读全文
posted @ 2015-05-12 11:44 Tunix 阅读(312) 评论(0) 推荐(0)
摘要:在这里记录一些在大神们的博客,以及自己做过的一些DP的神奇思路吧1.2015/04 NEUQ 月赛 转自:http://zyfzyf.is-programmer.com/posts/89993.html E.又被DP卡住了。 感觉是必须记录和的具体差值的。因为只有最值无法保证子问题最优的性质。 ... 阅读全文
posted @ 2015-05-12 09:14 Tunix 阅读(632) 评论(0) 推荐(0)
摘要:蒟蒻有幸参加了神犇云集的CTSC & APIO 2015,感觉真是被虐成傻逼了……这几天一直没更新博客,今天就来补一下吧~~(不过不是题解……)Day 0 从太原到北京现在坐高铁只需3小时= =然而高铁一路上多次停靠,时速长时间保持在200Km/h以下,超差评!! 然后坐地铁来到燕山大酒店,... 阅读全文
posted @ 2015-05-11 19:00 Tunix 阅读(2499) 评论(1) 推荐(1)
摘要:DP/GCD 然而蒟蒻并不会做…… Orz @lct1999神犇 首先我们肯定是要枚举下端点的……嗯就枚举右端点吧…… 那么对于不同的GCD,对应的左端点最多有log(a[i])个:因为每次gcd缩小,至少变成gcd/2(2是最小的质因数),所以是log个左端点…… 所以我们就有了log段... 阅读全文
posted @ 2015-05-08 23:02 Tunix 阅读(368) 评论(0) 推荐(0)
摘要:最短路+拓扑序DP orz zyf & lyd 统计每条边在多少条最短路径上……其实可以统计 有多少条最短路径经过了x,以及y出发到达任意一个结束点有多少种走法(沿最短路) 我们可以用Dijkstra求出以 i 为起点的最短路径图,它是一个DAG,然后我们用dij扩展的顺序(一个拓扑序)来搞D... 阅读全文
posted @ 2015-05-05 22:38 Tunix 阅读(289) 评论(0) 推荐(1)
摘要:嘛……后面的比赛基本都是在NOI Linux下进行了,windows下的开发环境基本都不能用了>_>果断转了vim,记录一下vim的配置文件~ 1 set nu 2 syntax on 3 filetype indent on 4 set shiftwidth=4 5 set tabstop=4 6... 阅读全文
posted @ 2015-05-03 22:25 Tunix 阅读(332) 评论(0) 推荐(0)
摘要:贪心 如果不考虑字典序的话,直接按右端点排序,能选就选,就可以算出ans…… 但是要算一个字典序最小的解就比较蛋疼了= = Orz了zyf的题解 就是按字典序从小到大依次枚举,在不改变答案的情况下,能加进来就加。 但我想错的地方是:如果第 i 个可以在某个最优解的情况下就加入它(即判断[1... 阅读全文
posted @ 2015-05-02 13:22 Tunix 阅读(803) 评论(0) 推荐(0)
摘要:解题报告: 傻逼错误天天犯QAQ 第一题:简单DP,f[i][j]表示第 i道题选j的最大得分,可以从f[i-1][j-1],f[i-1][j],f[i-1][j+1]转移过来,其实是可以滚动数组优化空间的,不过懒得弄了=。=反正能过 1 //TYVJ A 2 #include 3 #inclu... 阅读全文
posted @ 2015-05-01 09:10 Tunix 阅读(287) 评论(0) 推荐(0)