省选前长期计划

做事总得有点计划性。 省选是第二步。noip这步逗了,所以后面要加油。 十一月和十二月重点搞数据结构。毕竟天冷不适合思考太复杂的数学问题TT比如kd-tree之类的东西拿来看一看,bzoj上以前wc的数据结构也不少。争取多刷些题。 一月份大概会有会考,就乱刷些题当休闲了。 二月有wc。然后到时候大神应该也比较多,可以多学习一下数学题和dp。还要把计算几何认真学习一下。 三月大概会开始集训了。图论题比较重要。很多题就是看你记不记得那些结论。当然也有不少的烧脑题。需要多刷题来弥补智商的不足。 四月么,加油!

November 17, 2014 · 1 min · laekov

高二上半期总结

想起有这么一个总结,但是忘了带本子了,只好这样写了。 半个学期在学习文化课的时间也不超过20天。大概是没有多少好总结的。 半期的时候考懞了。虽然也花了三天的时间预习,不过那也只是简单地补补知识点,完全不能挽回任何东西。毕竟在高中的文化课里,书本和考试的差距还是有那么一些大的。感觉数学英语的差距要稍微小一些,另外四科就比较惨淡了。下半学期没有noip那么要紧的事情了,虽然还要停课,但是每天晚上也还是要做下作业,补一补知识点。数学物理和英语争取能跟上进度,这样压力应该会小一些。然后前半期的知识,每天做完作业之后也按顺序去前面把相应的作业做一做。班上有不少人批判刷题,但是现在血淋淋的事实就是,不刷题根本没有办法应付考试。 另外就是竞赛吧。其实这半期也没有写多少议论文,题解和总结倒写了不少。noip考得应该还将就,明天出正式成绩。反正第一步是迈出去了,后面的路会更艰险,不过我有信心和决心去实现自己的愿望。选择了便认定这一条路走下去,剩者为王! 好像虽然在停课,也参与了一些活动。比如运动会啥的,然后成绩也不错以至于被rp攻击了好几天。长跑教会了我不只是长跑。也许有许多人会和你在路上相遇,但是只有你自己坚持下来去冲击终点的红线。也许有人会跑得很快,但是你也不要怕,也许他们过会就会体力不支。也许有人会跑得很慢,但是也不要骄傲,他们也许是在保存实力。至于总有些人会战胜你,要保持一颗平和的心,因为有很多人也在以同样的视角看你。总之,你要做的就是不断地努力。即使是在你累得不能呼吸的时候,只要终点还在前方,你就得跑下去。长跑如是,竞赛如是,人生亦如是。当然长跑这个项目也不能停。好的身体在后面的学习中还是很重要的。 另外在停课搞竞赛的时候也还是学到了很多其它的东西。比如如何去协助老师管理同学,如何组织大家做事,以及如何应对各种突发情况等等。这些也是人生宝贵的财富吧。管理人是比管理程序更麻烦也更有挑战性的一件事情,也是必需要学会的一件事情。 下半学期的任务更加复杂。没有像noip一样的重大事件了,但是这半个学期将会深远地影响到高中结业以及省选,所以也要抓紧时间,提高效率。 最后希望明天++ rp,也希望我不会再写一篇同样题目的总结。 Historical Comments Unknown friend at 2014-11-16T22:56:11 OTL OTL OTL OTL OTL Unknown friend at 2014-11-16T22:57:13 现在还在赶……

November 16, 2014 · 1 min · laekov

BZOJ3744 Gty的妹子序列

这题就是考你怎么把能优化常数的地方都优化一下。 做法比较清晰,分块加持久化值域线段树。大块预处理,小块暴力算。虽然最初不想写持久化数据结构就试图用平衡树去做,结果发现做法是错的,单次复杂度是O(n*lgn)的。看来我太年轻了。后来改了但是常数巨大也没法跑。 本来是一次询问里有若干次在持久化线段树上查询的。然后首先发现可以预处理出从开头到一块末尾这一段里有多少个比后面任意一个位置大的数的个数。还有一个数前面比它大的数的个数。这俩加起来常数差不多就小到能过了。 丧心病狂! #include <cstdio> #include <cctype> #include <cstring> #include <algorithm> using namespace std; const int maxn = 50009; const int maxb = 259; const int maxnd = maxn * 30; struct seg { int v; seg *ls, *rs; }; inline bool cmpP(const int* a, const int* b) { return *a < *b; } #define readInt(_s_) {\ int _d_;\ _s_ = 0;\ while (!isdigit(_d_ = getchar()));\ while ((_s_ = _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\...

November 14, 2014 · 4 min · laekov

BZOJ3333 排队计划

暑假的时候就听zhx讲过这题,不过好像当时讲复杂了。 很容易知道答案就是每次减去被出列的人里面没有出过列的人在原序列里右边的比她矮的人的个数。 所以每个人只会被算一次,均摊下来是O(n)的。然后就是怎么很快地找到这些人。我觉得用线段树比较方便,时间可以做到log。不知道是不是能用并查集。 好写好调。 #include <cstdio> #include <cstdlib> #include <cctype> #include <memory.h> #include <algorithm> using namespace std; #define readInt(_s_) {\ int _d_;\ while (!isdigit(_d_ = getchar()));\ _s_ = 0;\ while ((_s_ = _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\ } typedef long long qw; #ifdef WIN32 #define lld "%I64d" #else #define lld "%lld" #endif struct seg { int l, r, v, p; seg *ls, *rs; }; const int maxn = 500009;...

November 13, 2014 · 3 min · laekov

BZOJ2141 排队

连yjq都会做,简直是水暴了。 #include <cstdio> #include <cstring> #include <algorithm>   usingnamespacestd;   constintmaxn = 20009;   intn, m, a[maxn], t[maxn], *r[maxn], s;   intbtQry(int* t, intp) {     ints = 0;     while(p)         s += t[p], p -= (p & -p);     returns; }   voidbtChg(int* t, intp, intv) {     while(p < maxn)         t[p] += v, p += (p & -p); }   inlineboolcmpP(constint* a, constint* b) {     return*a < *b; }   intmain() { #ifndef ONLINE_JUDGE     freopen("in.txt", "r", stdin); #endif...

November 13, 2014 · 2 min · laekov

NOIP2014 DIARY2

居然感冒了,嗓子痛死了。 8:00 进考场了,不准动机器,那还怎么配vim啊TT 8:30 这密码。看了下题好像也不是特别麻烦啊,除了最后一题有个10^10000。 8:35 第一题敲完了? 8:45 第二题敲完了? 8:50 第三题想不出其它的做法啊。哈希吧。 9:10 花了四十分钟就做完了?点开扫雷的时候看到了身旁某兄怨念的眼神。 10:00 第三题极限数据居然会tle。想打数据分治但是觉得不好的。发现可以先用自然溢出,如果没有暴再用模质数检查。这样好像0.5s能跑完。希望评测机不要比这个机子慢太多。 11:00 第一题居然把++ x写scanf上面了,作死。 12:00 终于交卷了。又老了一岁的感觉。 12:15 照相,讨论。jason_yu好像第三题写得不太一样,其他人基本都想得一样。看谁长得帅了。 然后某人的第六次noip就结束了。

November 9, 2014 · 1 min · laekov

NOIP2014 DIARY1

记得noi的时候写了日记,那么noip也那么写一写。 听说今天的题很水,虽然我心里总有种不确定的感觉。 6:00 醒了。好像下雨了,有点冷。再睡会。 6:30 起床。 7:40 到考场了。因为下雨所以外面的广场上都没站什么人。倒是看到了徐老和初中的小伙伴。 8:10 开始配vim。好像我的键盘和旁边的同学不太一样,敲起来手感比较不错。 8:25? 发密码了。很淡定地输入,打开。好像之前已经重复做这个动作做了很多遍了,异常淡定。 8:30 第一题n才200?直接模拟?打表,写。 8:40 原来第二题是树。写。 8:55 第三题n*m^2会tle?难道不应该是f[i]-i=max(f[j]-j)?写! 9:10 写完好晕,怎么过不了样例啊。打印中间变量发现如果上升的话就不会下降了,囧。 9:40 好像写完了,对拍吧。 10:xx 第二题居然乘暴了。原来要取模。 11:xx 第三题拍出错了!?仔细一看暴力有bug。 12:00 终于交卷了,尿胀慌了。 出来看到小伙伴们也比较开心。心里还是那种很不确定的感觉。估分的时候扔了个300,大概是在向flag学说发出挑战。还好有mhy陪我挑战。 day1就这么过去了。原来我是如此之年轻。

November 8, 2014 · 1 min · laekov

noip2014 计划

好奇怪的题目。 明天就要考noip了。第六年了,该成熟点了。 仿佛也在几个小时前有一些紧张。这么多年这么些路走过来了,这算是最后一博了吧? 更多的是一种成长的感觉吧。这一年,改变了太多太多了。从noip2013的惨败开始,有wc的奇奇怪怪的noip后遗症,然后是省选莫名其妙自己扔了一百多分,然后混进noi又疏忽地把au拿去喂狗了。没有什么好看的成绩,只有一双越来越快的敲键盘的手。 这两天的集训考得还是将就。但是也没有九月那么绝对了。也许是我的心态也没有经受住挑战,也许是大家都进步了吧。两者都有。总觉得过去的一切离我好遥远,好像去年的我和今年的我是老死不相识的两个人似的。这叫作成长?或者是太专注一件事情导致的沧桑? oi就是那么玄妙。不见到ccf官网上的成绩,一切就是未知数。即使考前能场场ak,也说不准考场上会发生什么,何况我也没有那个实力去ak。换个角度说,noip,考的是细心。 只能说调整好自己的心态, 淡定地去战斗吧。 预祝所有人能成功,即使没有什么人会看到这句话。

November 7, 2014 · 1 min · laekov

BZOJ3513 [MUTC2013]idiots

居然写了一半手贱就把所有东西都弄没了。严重地不开心。 既然这样那么简单说吧。 长度≤10^5这个条件在bzoj上没说。 用fft求出长度和为leni的组数。 枚举第三根火柴,可行的是(它作为最长的总组合数 - (长度≤它的组合数))那么多组。 fft必需常数够小。不写蝴蝶会tle。 #include <cstdio> #include <cmath> #include <cctype> #include <memory.h> #include <algorithm> using namespace std; typedef long long qw; #define readInt(_s_) {\ int _d_;\ _s_ = 0;\ while (!isdigit(_d_ = getchar()));\ while ((_s_ = _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\ } struct cplx { double r, i; inline cplx() { r = 0, i = 0; } inline cplx(double r0, double i0) { r = r0, i = i0;...

October 30, 2014 · 3 min · laekov

BZOJ3585 mex

很久之前就看过的题。不过一直没有勇气去做。爱真的需要勇气。 mex这个函数的性质比较奇妙。一端确定的话一定是单增的。两段和起来也一定是增加的。 可以很方便地求出从1到任何一个位置的mex。考虑把询问离线。按左端点排序。如果去掉一个数,那么对于右端点在(从这个数到下一个等于这个数的位置)这一段里的询问,它的值至多是这个数。 所以用线段树维护区修单查维护一下区间最小值就好了。注意如果没有下一个数了那么右端点是n。 据说要离散不过被我用map给水过去了。 #include <cstdio> #include <cctype> #include <memory.h> #include <map> #include <algorithm> using namespace std; #define readInt(_s_) {\ int _d_;\ _s_ = 0;\ while (!isdigit(_d_ = getchar()));\ while ((_s_ = _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\ } struct seg { int l, r, z; seg *ls, *rs; }; struct query { int l, r, n; }; inline bool cmpQuery(const query& a, const query& b) { return a. l < b....

October 30, 2014 · 3 min · laekov