bzoj4070 [Apio2015]雅加达的摩天楼

apio的第二题.其实是我做题顺序里的最后一道. 我的方法比较奇怪.对于p分开讨论.如果p>c那么直接建边,否则在图的旁边再建若干条链,把这个点连到链上去.然后再跑一下最短路. 卡一卡常数就过去啦.

May 13, 2015 · 1 min · laekov

bzoj4069.cc

#include #include #include #include using namespace std; typedef long long dint; #ifdef WIN32 #define lld “%I64d” #else #define lld “%lld” #endif #define _l (long long int) #define lpow2(x) (1ll«(x)) const int maxn = 2009; const int maxb = 43; dint a[maxn], ans; int n, ml, mh, d[maxn]; bitset f[maxn]; int bitDP(int bo) { if (ml > 1) { memset(f, 0, sizeof(f)); f[0][0] = 1; for (int i = 1; i <= n; ++ i) { f[i - 1] «= 1; for (int j = 0; j < i; ++ j) { dint vd(a[i] - a[j]); if (((vd & ans) » bo) !...

May 13, 2015 · 2 min · laekov

bzoj4069 [Apio2015]巴厘岛的雕塑

看上去apio的成绩都出来了,那我就可以写题解喽. 这题比较水啊,尤其是在考试的时候允许多次提交,服务器还跑得飞快.强行bitset压位就好了. 按位从高向低贪心. 对于l=1的情况直接求最少的覆盖区间就好了. 对于剩下的情况,用f[i][j]表示前i个数能否用j个区间覆盖. 完了辣

May 13, 2015 · 1 min · laekov

20150513

比较无语的一场考试.感觉题不太能做啊. 第一题,啊,平面图!根本不会!想了想能不能反演发现好像没有意义,感觉xyz大爷当年讲过啊.于是只好朴素拿40分走人.然后发现别人居然都没有拿到40分ovo 第二题我觉得任何时候都不能赌博啊然后还是hobo厉害地发现了问题所在.本来也没有认真想,都去颓提答去了. 提答题感觉还挺好玩.先写个模拟器人工玩过了123,然后发现后面的点都有特点啊.有的是矩形最短路,有的是树形dp啥的.不过,我,都,不,想,写,了.于是写了个随便乱走的东西骗个1分2分的.懒癌晚期TT 后来还差点把spj配错结果差点以为我自己几乎ac.吓死了.其实只有35分TT 然后ioi好强啊. 所以我还是太弱了.

May 13, 2015 · 1 min · laekov

bzoj2111.cc

#include #include #include using namespace std; #define _l (long long int) const int maxn = 1000009; int n, mod, sz[maxn]; int modPow(int a, int x) { int s(1); for (; x; x »= 1, a = _l a * a % mod) if (x & 1) s = _l s * a % mod; return s; } struct modInt { int a, b; modInt() {} modInt(int ao, int bo) { a = ao, b = bo; } modInt(int xo) { a = xo; for (b = 0; a % mod == 0; a /= mod, ++ b); a %= mod; } inline void print() { if (b) puts(“0”); else printf("%d\n", a); } }; inline modInt operator *(const modInt& a, const modInt& b) { return modInt(_l a....

May 13, 2015 · 2 min · laekov

bzoj2111 [ZJOI2010]Perm 排列计数

之前觉得好神的题根本没有思路.刚才才发现ovo 发现这玩意其实就是一个堆而且堆里没有相同的元素.那么对于一个点它的方案数就是左右儿子的方案数的积再乘两边大小的组合数ovo 然后被坑了直到看到zyf的题解才想起有可能mod<n.然后得用一个pair来代替原来的数. 无语喽ovo

May 13, 2015 · 1 min · laekov

bzoj4059.cc

#include #include #include #include using namespace std; typedef pair <int, int> ipr; typedef map <int, int> imap; typedef imap :: iterator imap_it; struct seg { int l, r, s, a; seg *ls, *rs; }; struct oper { int x, ya, yb, t; }; inline bool operator <(const oper& a, const oper& b) { return a. x < b. x; } const int maxn = 400009; int n, m, a[maxn], pr[maxn], su[maxn], t; oper o[maxn]; seg sbuf_arr[maxn * 2], *sbuf, *rt; imap ri;...

May 12, 2015 · 3 min · laekov

20150511 summary for 北京多合一

去了一趟帝都,算起来大概打了4场比赛. ctsc听说是世界上最难的oi比赛.虽然我至少有2题写出了正确的代码,然后又因为奇奇怪怪的原因把分扔掉了.本来以为自己考得稀撇然而还是拿到了au.说明在这样的比赛里稳定才是关键.当然像hobo那样玩心跳翻盘也是不错的,虽然我觉得这样风险很大.也教会我要相信自己相信出题人,不要老是怀疑人生. apio相对开心很多.吉司机怒虐全场2小时ak把我惊呆了.然后我也就做了2.75小时而已.感觉今年题简单加上多次提交帮了大忙.虽然心虚不过最后还是拿到了au. 然后因为apio提前出来了所以还做了bop复赛,虽然感觉整个那个下午都很颓废.做了比较水的题然后就放弃了.然后还有个题强行set被卡常数了TT 然后就是pku校赛了,事实证明在acm中找一个正确的团队和写好自己的题同样重要.虽然是一支从未磨合过的队伍,但是感觉还是很好吖.然后也结交了两个很厉害的朋友. 感觉上面的东西在之前的博客里都说过了.所以就自行翻阅吧. 出来也认识了很多各地的神犇,从以前只是oj上的一个id变成了现实中活生生的人.每个人都有自己的个性,让我感觉世界一下充实了不少,也找到了自己的差距和努力的方向.顺便也为未来规划了一些互相帮助共同进步的计(hu)划(ce). 嗯很开心啦,虽然我还是很弱.

May 11, 2015 · 1 min · laekov

20150510

pku的acm校赛.原来这么欢乐.成功抱粗腿虽然最后10分钟duang的一声rank3就变rank4了. 我的输出其实就是c和j两道比较无语的题.然后d题在帮着调精度虽然最后也没有过.队友不会用gdb心头一惊. 一个发现是队友的数学比较强,所以他们选择的题和我选择的题刚好没有交集(除了水题).感觉这样才是科学的组合啊. 我的做法? c题好像很水啊.直接用xyz大爷在wc的时候讲的东西分治过去就行了.然后听说k=0坑了一坨人.我也挂了一次幸好马上就发现了. d题听说可以强行解方程然后队友去写二分于是挂辣. j题我的做法是按x坐标分组,分别处理大小大于b的组和小于b的组.总的复杂度是根号乘log.我调了一下块大小加上fread读入优化搞过去了好开心. 所以我还是太弱啦,队友好神啊orz

May 10, 2015 · 1 min · laekov

20150509 apio2015

apio2015.据说不能透露任何信息,那就随便写点心情之类的吧.大概也没人会看. 嗯第一题把条件看错了居然过了.下来才知道我有多厉害ovo 然后三个小时不到就搞完了虽然换台评测机肯定稳死.于是出去吃饭还遇到了已经变身工作人员的vfk和毕姥爷.令人感动的是他们居然认识我了ovo 于是下午干啥呢思考ing

May 9, 2015 · 1 min · laekov