摘要: 前几天去海南旅行没怎么做题,倒是搞了一下多校的那个polya,现在看来如果给我多点时间我应该是能搞出来的,置换群也大概知道怎么找了,以前是没看出那个东西怎么转,现在看出来了,自然就没什么好怕的了~今天在研究Treap,觉得它的名字就是Tree和Heap派生出来的,既有树的形式,也有堆的形式,通过旋转能够平衡,下面贴下代码,代码的模板来源于某道题的标程,自己在后面加了个找第k大值的,下面是模板#include#include#include#include#includeusing namespace std;int N=100000;const int M = 100000 key[u];.. 阅读全文
posted @ 2013-08-06 00:01 chanme 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 那么久没写,说明我没学到什么.这三天处于游离状态,今天的比赛A了一道题,挺自豪的,但后来觉得虽然原理是对的,但是做了不必要的操作,但是把那段去掉就WA了,令人费解...感觉是水过去的,但思路跟解题报告是一样的..真搞不清楚..昨天就做了下上一场的搜索,觉得那道搜索那么简单,但是卡在了题意上吧,不然打下应该是能过的.那么就在这么几题里我学习到了什么呢,搜索的那道学习了最优性剪枝,就是确定往下搜没有最优解的时候剪掉,然后是可行性剪枝,确定下面这个状态不满足条件时剪掉,这两个也是很好的剪枝思路吧,不过更复杂的就有待学习了.然后今天的这道题考了一个set的操作,STL里的set的插入insert是l. 阅读全文
posted @ 2013-07-31 00:49 chanme 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 今天没学什么东西,就打了一下昨天的一题,学习了一下桥的判断方法,怎么求边双连通分量,还有求树的直径,看懂了low的那些方法后再去看强连通分量的tarjan算法,豁然开朗,没做什么题,有点挫了,明天一题一题的研究吧,明天打算学下半平面交,还有看点数论吧,然后就是搞懂一下两天多校的一些题~总结一下:1.桥的求法和判断2.树的直径3.边双连通分量4.强连通分量的tarjan算法 阅读全文
posted @ 2013-07-27 00:06 chanme 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 今天一天打下两天的吧.今天是第二天多校,中大出题,个人感觉会简单一点,但是一做发现不怎么好做,五个小时下来,我敲了三题,还有两题队友都卡住了,真不知道原因...做多一题好歹能进个前100- -0.今天做的三道题,第一道是个裸的二分图的最大匹配吧,做的同时相应的搞明白了一下最大独立集,最小点覆盖等等的概念吧,二分图匹配跑一次最大流跑过的,不知道匈牙利算法是怎么样的,下次试下.然后是一题线段树,支持一个段更新的操作,还有就是从x点开始顺序将后面的y个0补变成1(不足就不足吧),要输出填的第一个点的位置和最后一个点的位置,我想了一下,套了个区间更新的set模板的线段树,至于要输出位置,实在是想不到. 阅读全文
posted @ 2013-07-25 23:46 chanme 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 今天多校第一天,题目是北邮出的,听说比较难,一做果然发现,真的比较难...我们队三个人做出了4题,好吧,我一题都没敲到...一个代码都没写,但是也有一定的思路贡献,4题里有一题颇水吧,然后一题找规律,pz找的好快,然后就是一个快速幂的事了,然后是一题图论的,YY了很久,发现问题可以转化为求一颗树的直径,最后我想了一下dfs一下就可以了,然后还是pz打..orz,然后还有一道是和最长上升子序列的,我告诉了他们nlogn的算法的原理,然后他们想出来了怎么利用原理的变形求出来,反正我是没理解..慢慢消化一下吧.剩下的时间就在想一两道题,一道后来听说是线段树做的,但是怎么构造真不知道,所以就没办法,. 阅读全文
posted @ 2013-07-24 00:02 chanme 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 今天主要是学习了一下数学的相关知识,首先是补充了昨天没学好的一块,解线性同余方程,还是看了那本书>,我觉得这本书挺易懂的,三言两语概括了精髓,看起来也不会那么纠结,代码实现也很简练.解线性同余方程这一块看了颇久才理解到它的原理,实际上就想多米诺一个推倒另一个的感觉.然后学习了一下中国剩余定理,实际上是给出了x=ai(mod mi)的其中mi两两互质的一个解的形式,记Mi=m1*m2..*mn/mi 则方程的解应为 x=M1M1'a1+M2M2'a2+...(mod m1*m2..*mn)其中Mi'为Mi在mi下的逆元,即Mi*Mi'=1(mod mi) 下 阅读全文
posted @ 2013-07-23 00:44 chanme 阅读(189) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;int gcd(int a,int b){ return (b==0? a:gcd(b,a%b));}int exgcd(int a,int b,int &x,int &y){ int d=a; if(b!=0){ d=exgcd(b,a%b,y,x); y-=(a/b)*x; }else{ x=1;y=0; } return d;}int mod_inverse(int a,int m){ int x,y; exgc... 阅读全文
posted @ 2013-07-22 21:24 chanme 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 今天打了一下学校的个人赛,仍然是CF上的题.总的来说水平有限,能dp出来的dp出来了,能找规律的也找了,能构造的也构造了,但是复杂的组合数学,或者是图论搜索,还真的打不出来了... 再说下今天的学习的一些算法吧,主要是看了一下最大流和最小费用流,对拍了一下代码,个人对最大流的理解也深入了一点,但是对算法的正确性,以及最大流最小割定理的证明,都觉得不太懂,后来还有二分图的匹配,用最大流的思想来看豁然开朗,找增广路的思想感觉挺重要的.学最大流就看了两个算法,Flord和Dicnic,分别跑了一下POJ3187的Flow problem,Flord比Dicnic快,应该是因为该题的点少(N<= 阅读全文
posted @ 2013-07-22 00:11 chanme 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 今天学点数学,主要是复习了一下这个gcd,和exgcd的算法,看着书了解了平面扫描的方法的大致内容,复习了凸包的算法,感觉凸包的算法很神~后来想学下对踵点,不过貌似没时间了,明天再看吧.晚上打了一下CF,发现我的个人能力实在太挫.犯了不少SB错误.能力的提升要一步一步吧.高斯消元法看了一下,没太懂.学平面扫描的时候倒是学习了一下STL里的set的用法.总结一下:1.平面扫描(大致思想)2.凸包的Graham扫描法3.欧几里德算法和扩展欧几里德算法4.STL里的set的用法 阅读全文
posted @ 2013-07-21 00:08 chanme 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 今天的主题就是搜索,按照题表上的题做了一下,几道BFS和DFS,觉得BFS的题貌似都很难看出来,而且总觉得无论怎么做都会超时的样子,可能是对时间复杂度的分析不够吧.做dfs的时候很明显可以看出题目是想让你dfs,今天做了两个简单的dfs,一个就是最简单的骑士遍历了,想起上学期做骑士遍历的时候还是用蛮力以及试探性可达数的方法做,到现在完全靠自己打出dfs,而且打对,不得不说是一个飞跃,那个时候想,什么东西是dfs,那么鬼死难打的东西.现在能够看懂一些dfs代码了.第二题原理类似,题意没看清楚就打浪费了不少时间,后来看懂了打了很就而且也找了很多数据试都过了,但就是WA,找不到原因..真是无解的问. 阅读全文
posted @ 2013-07-20 00:49 chanme 阅读(170) 评论(0) 推荐(0) 编辑