bzoj2683 简单题
水水的cdq。久了不写练一下手。然后发现犯了一堆逗错。幸好没过样例不然就do big die了。
水水的cdq。久了不写练一下手。然后发现犯了一堆逗错。幸好没过样例不然就do big die了。
怎么还审不过啊。打击积极性呢这。 再次被虐。 考试的时候总觉得题不可做啊。也许是心态异也?or多年的春季发冬? 第一题一直在想怎么整体算一个数的贡献,就搞忘了去找找一对数的贡献。晕。 第二题写的是三方的dp,然后记搜各种剪枝把随机数据给水过去了。mhy那种交替前移的才是正解。orz。这个题还是最后吃饭之前才发现写得有问题搞出来的。晕死了。 第三题想对了矩阵转移的思路。但是被i≤k的情况烦到了一直没有搞定。最后也没有调出来于是只好交暴力。最后mhy一句话,说answer可以是s[k-1],秒懂然后就过了。最近做题似乎总欠别人一句话的感觉。 然后下午也没有心情再写题了。于是剩下的半天时间都花去码oj了。我是不是太颓废了。 所以我还是太弱。
多年之前讲过的最小割。 比较好想啦。 把每一位拆开。然后单独跑一遍最小割。各种连边。然后以答案为高位,数字和为低位跑就行了。 好像也没说清楚怎么建图啊。 对于原图中已经确定的点,如果它是1,就从源连过来,否则连向汇。对于每一个未知的点,把所有边建出来。然后再向汇连个1的边来表示它如果选1的话就要产生贡献。然后就差不多了吧。脑补一下。
原来备案还没过。那之前是怎么成功访问的囧。 写了一晚上。教训还是之前那个,写之前要想清楚。写完再去改就很烦。自己yy了很久,虽然最初是听了mhy的一句提醒。好有危机感。 首先这个东西可以离线。之前一直在想在线怎么做然后也觉得没法做。 把询问按右端点排序之后问题就转化成了左端点在一个范围里的时候的最大子段。 然后用一个线段树表示从i到current right的时候的和,这个玩意可以直接区间加。然后再去维护这个东西的历史最大值。于是就变成了每个位置上接了一个add序列,要找它的前缀最大值。那么只需要存两个东西:当前的和以及当前的最大前缀和,就可以合并了。 然后线段树上维护两个add序列,分别是对整个线段的lazy tag of add和max value of son。就可写了。 然后好像跑得很慢啊TT。
#include #include #include #include using namespace std; const int max_buf = 4567; char buf[max_buf], *bufb(buf), *bufe(bufb + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); register bool nag(0); do { readBuf(); } while (!isdigit(*bufb) && *bufb != ‘-’); if (*bufb == ‘-’) { nag = 1; readBuf(); } do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); if (nag) x = -s; else x = s; }...
#include #include #include using namespace std; struct edge { int t, c, v; edge *next, *rv; }; typedef long long dint; #ifdef WIN32 #define lld “%I64d” #else #define lld “%lld” #endif #define _l (long long int) const int maxn = 509; const int maxm = 2009; const int maxe = 10009; const int inf = 0x3f3f3f3f; dint ansc, ansv; int n, m, ea[maxm], eb[maxm], v[maxn], st, te; int d[maxm], fp[maxn]; edge *ep, *head[maxn], elst[maxe], *fe[maxn];...
#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) const int maxp = 300009; const dint maxv = 1e11; int pn[maxp], tp; bool pr[maxp]; dint qv, x, cnt; void pre() { memset(pr, 0, sizeof(pr)); tp = 0; for (int i = 2; i < maxp; ++ i) { if (!pr[i]) pn[tp ++] = i; for (int j = 0; j < tp && i * pn[j] < maxp; ++ j) { pr[i * pn[j]] = 1; if (i % pn[j] == 0) break; } } }...
" local syntax file - set colors on a per-machine basis: " vim: tw=0 ts=4 sw=4 " Vim color file " Maintainer: laekov laekov@163.com " Last Change: 2015 Feb " hi clear set background=dark syntax reset let g:colors_name=‘pineapple’ if has(‘gui’) hi Normal guibg=#000000 guifg=white hi SpecialKey term=bold ctermfg=4 guifg=Blue hi Directory term=bold ctermfg=4 guifg=Blue hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi IncSearch term=reverse cterm=reverse gui=reverse hi Search term=reverse guibg=Blue guifg=White hi MoreMsg term=bold ctermfg=2 gui=bold guifg=White hi ModeMsg term=bold cterm=bold gui=bold hi LineNr term=underline ctermfg=3 guifg=Pink hi Question term=standout ctermfg=2 gui=bold guifg=White hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Grey35 hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=Grey10 guibg=Gray85 hi VertSplit guibg=Pink guifg=Black hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3 hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5 hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80 hi DiffAdd term=bold ctermbg=4 guibg=White hi DiffChange term=bold ctermbg=5 guibg=#edb5cd hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0 hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060 hi Cursor guifg=black guibg=white hi lCursor guifg=bg guibg=fg hi NonText guifg=green guibg=#1a1a1a " Colors for syntax highlighting hi Comment term=bold ctermfg=4 guifg=Cyan hi Constant term=underline ctermfg=1 guifg=Yellow hi Special term=bold ctermfg=5 guifg=#ff9c3a hi Identifier term=underline ctermfg=6 guifg=#9999ff hi Statement term=bold ctermfg=3 gui=bold guifg=#09f93f hi PreProc term=underline ctermfg=5 guifg=#888888 hi Type term=underline ctermfg=2 gui=bold guifg=#598ff9 hi Ignore cterm=bold ctermfg=7 guifg=bg hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow else hi Normal ctermfg=white ctermbg=0 hi ErrorMsg cterm=standout cterm=bold ctermfg=7 ctermbg=1 hi IncSearch cterm=reverse ctermbg=1 ctermfg=7 hi Search cterm=reverse ctermbg=7 ctermfg=blue hi Visual cterm=reverse if $TERM == ‘xterm-256color’ " hi NonText cterm=bold ctermbg=232 ctermfg=2 " hi Type cterm=bold ctermfg=4 " hi Special cterm=bold ctermfg=172 hi NonText cterm=bold ctermbg=234 ctermfg=2 hi Type cterm=bold ctermfg=4 hi Special cterm=bold ctermfg=1 else hi NonText cterm=bold ctermbg=8 ctermfg=2 hi Type cterm=bold ctermfg=32 hi Special cterm=bold ctermfg=1 endif hi LineNr cterm=bold ctermfg=5 hi ModeMsg cterm=bold hi StatusLine cterm=bold ctermfg=7 ctermbg=8 hi StatusLineNC ctermfg=7 ctermbg=8 hi VertSplit ctermfg=0 ctermbg=5 hi Folded cterm=standout ctermfg=3 ctermbg=4 hi FoldedColumn cterm=standout ctermfg=3 ctermbg=4 “For syntax hilighter hi Comment cterm=bold ctermfg=6 hi Constant ctermfg=yellow hi Indentifier cterm=bold ctermfg=2 hi Statement cterm=bold ctermfg=2 hi PreProc cterm=bold ctermfg=darkgrey hi Ignore ctermfg=7 hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 hi Todo term=standout ctermbg=6 ctermfg=0 endif
set guioptions-=m set guioptions-=T source $VIMRUNTIME/mswin.vim behave mswin set nu set softtabstop=4 set tabstop=4 set shiftwidth=4 set nobackup set mouse=a set fdm=marker set guifont=Source\ Code\ Pro\ Semibold:h16 set hlsearch set ruler if has(‘gui’) set columns=1000 set lines=1000 set cursorline endif map : call Save() map : !mvim -ro % map : !gdb –quiet %< map : call Compile() map : !bash check.sh map : !./%< <.in map : call Run() map : !...
今天是正儿八经地被吊打了。 早上看了题之后觉得好困。于是一趴就是俩小时。无语。 第一题似乎是奇怪的数论?二次剩余?然后发现好像不是baby-step-gaint-step的题。然后就不会了。然后还错误地以为只有两个解,于是写个常数优化的暴力就交上去了。 第二题感觉是个数位dp?依然不会。于是30分暴力。比较厉害的是有人用比较快的匹配方式拿了50分。 第三题其实是个简单的线段树的。然后我就想复杂了。我认为用线段树下放标记是会变成O(n)单次的。于是没敢写。于是写了个分块+splay。调度到最后一分钟无果。晕。知道正解之后眼泪掉下来。 下午讨论完就在改oj,然后就回去上班会了,也没有空继续调题。 倒是把oj的页宽终于调对了。然后也把代码高亮搞上了。于是就移植到这来了。什么时候才能过审核啊TT。 今天晚上要早些睡。不能再搞今天这种飞机了。