08 2013 档案
摘要:今天做了一下通化邀请赛的题目重现,有些题都不会呢,想搜一下,感觉都搜不到... 今天自己做了4题吧..我打代码的速度还是太慢了..先是1007的Canon,就是在中国象棋的棋盘里放炮,使得两两都不被吃,最多能放多少个.棋盘上可能原本就放了一些棋子(不是炮的),之前一直敲错,原来理解错了题意,注意是炮不被吃就可以了,原来的棋子是可以吃的.棋盘5*5,很小,搜一下就可以了,每次搜判断可不可以放就很容易过了的~. 然后是1010Dice.学会写递推就好F(n)=F(n-1)+1/6+5/6*(F(n)) 解一下F(n)=(6^n-1)/5 H(n)=G(n-1)+1/6+5/6(1+F(n)) H.
阅读全文
摘要:从昨天开始我就想学这个伸展树了,今天花了一个上午2个多小时加下午2个多小时,学习了一下伸展树(Splay树),学习的时候主要是看别人博客啦~发现下面这个博客挺不错的http://zakir.is-programmer.com/posts/21871.html.在里面有连接到《运用伸展树解决数列维护问题》的文章,里面对伸展树的旋转操作讲得很仔细,而且也讲清楚了伸展树是怎么样维护一个数列的,一开始我是小白,觉得树和数列根本没什么关系,但看了之后就会明白,实际上树上的结点是维护该结点的值的,而这个值是原来数列里的哪一项呢?如果该结点对应的中序遍历数k,那么就是对应原数列a中的a[k]这一项.理解了.
阅读全文
摘要:那么晚才发..说明卡在某题上了..今天终于A掉了3 idiots..FFT是个神奇的东西...不过有些long long的细节没处理好..所以卡了很久..吃浮点的亏,上符号的当,最后死在long long上..long long是个坑爹的东西.好吧,要总结了~总结一下:1.FFT
阅读全文
摘要:好困了,不总结那么多啦,今天看了下高斯消元法,算是一种工具算法,以后碰到解方程的问题就可以用高斯去敲一下咯~.然后几何一直想学半平面交,但是实在太难看懂了目前来说,有空我得补上一些模板,线段与直线交,线段与线段交,直线与直线交之类的,这些基础算法真的到了自己敲的时候可不是随便YY得出来的(各种细节处理),今天还敲了道树dp,对树dp算是有了更深入的了解吧.加油~总结一下:1.高斯消元法2.树形dp
阅读全文
摘要:一道树形dp,写出来是因为最近也做了道类似的.这题是看了分析的思路才做出来的,但感觉很多这样的dp都是利用类似的性质.像这题的话distDown很好想,但distUp的时候就很难想了,其实只要抓住distUp的必然经过父结点或者它的兄弟经过父结点,这周二的多校的那道也是类似的.但是要在线性时间里求出兄弟结点的时候就要注意,我们不可能遍历这个点的所有兄弟结点,所以好的办法就是存最大的两个,当该点是最大的,就用次大的算,其余的都用最大的算.多校的那个也是类似的,不过要存最大,次大,次次大,是有点麻烦.下面贴一记代码初始化为负无穷有点麻烦的样子- -0#include#include#includ.
阅读全文
摘要:看了好久,终于把这题过了..这题的意思也很简单,就是支持3种操作,区间l,r的每个数乘上一个数,加上一个数,令为某个数.维护的信息则是某个区间这些数的1次方和,2次方和,3次方和.这题对于区间修改的线段树的理解很有帮助,以前都是套模板不知其所以然.实际上只要写好两个函数就可以了,一个pushDown,一个是pushUp, pushDown的实际就是将该点的标记往下传,传的时候要更新子结点的标记,以及更新子结点的信息,在有多个标记的时候就要考虑标记的先后顺序的影响,这个体现在标记下传的函数里.pushUp则是写好要维护的信息,这个相对就很简单. 对于本题来说,可以写3个标记或者2个标记.可以写.
阅读全文
摘要:那么久才写一次日记,说明前段阵子我都在偷懒,也不是偷懒吧,感觉自己提高的方向有点不知所措,很多题都搞不出来,没什么信心呢...现在也一样..说好的字符串没学..想好的网络流也没怎么搞..图论学了些基础算法看到题依然是想不出来...复杂的代码我写的话要写好久...队友的速度快好多...所以看到题也没什么信心写呢- -0.要说这几天真的学了什么,那可能是一些无意义的东西吧.线段树的区间修改倒是有了个质上飞跃的理解,对标记与标记下传理解了不少,感觉以前很多不会的线段树其实都可以写的样子,感觉其实只要写好标记,写好pushDown函数,维护好相应的信息,其它的没什么,就是不知道为什么我写的过不了,坑.
阅读全文
摘要:前几天去海南旅行没怎么做题,倒是搞了一下多校的那个polya,现在看来如果给我多点时间我应该是能搞出来的,置换群也大概知道怎么找了,以前是没看出那个东西怎么转,现在看出来了,自然就没什么好怕的了~今天在研究Treap,觉得它的名字就是Tree和Heap派生出来的,既有树的形式,也有堆的形式,通过旋转能够平衡,下面贴下代码,代码的模板来源于某道题的标程,自己在后面加了个找第k大值的,下面是模板#include#include#include#include#includeusing namespace std;int N=100000;const int M = 100000 key[u];..
阅读全文
浙公网安备 33010602011771号