今天做题:
ac自动机和网络流。。
ac自动机:
https://vjudge.net/contest/175599#problem/D
参考这个的。。这种状态压缩应该是一种套路,,可是我连dp都想不出,更加别说记住这个套路了。。。(花了挺久弄这题,也有启发不能这样学。。。)
http://blog.csdn.net/u011345136/article/details/40185135
https://vjudge.net/contest/175599#problem/D
这题的状态压缩应该是挺普遍的吧。。学学
网络流:
https://vjudge.net/contest/173971#problem/L
然而没有找出自己为什么TLE了。。交了别人的代码。。
之后看了师兄的代码,发现师兄用数组实现queue好熟啊。。
学习下。
int pre=0,tail=1;
q[0]=s;
while(pre<tail){
int u=q[pre++];
inq[u]=0;
for(int i=head[u];~i;i=edge[i].nxt){
int v=edge[i].v;
if(d[v]>d[u]+edge[i].w){
d[v]=d[u]+edge[i].w;
if(!inq[v]){
q[tail++]=v;inq[v]=1;
}
}
}
}
**重点内容**
昨天的div2
1:http://codeforces.com/problemset/problem/835/C (前缀和)还是要看别人的代码。。。 而且发现树状数组也不会。。
2:http://codeforces.com/contest/835/problem/D dp
这个回文串他们说简单。。有点题意,题解都看不懂
http://www.cnblogs.com/yyf0309/p/7267342.html
http://blog.csdn.net/a664607530/article/details/76512465
https://vjudge.net/problem/26842倍真法+dp 刚学倍真法。。 还是熟悉下好。
今日多校赛。。
https://vjudge.net/contest/176221#problem/K
绝了,一道水题,我思考那么久,而且debug那么久才发现自己的错误。。
而且还错了。。
还要看别人的代码,突然发现自己小题大作了。。
https://vjudge.net/contest/176221#problem/E 最短路+取模
挺好的一道提,
参考http://blog.csdn.net/yasola/article/details/76684704
这里面应该有挺多题是那种套路的。然而不会
https://vjudge.net/contest/176221#problem/G
这题自己想着想着YY出来了。。不过我应该敲不出来。。。
今天敲了也有一个小时了,觉得其实这个地方的topsort我是想不出来的。
https://vjudge.net/contest/176221#problem/C 质数分解
这题要用到质数分解,,特别不会,不过应该是套路吧,要学学。。‘
什么约数个数定理自己一点都不知道。。。
你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,现在,我们向你介绍的是VIM杀手级的功能。下面这些功能是我只用vim的原因。
在当前行上移动光标: 0 ^ $ f F t T , ;
0 → 到行头
^ → 到本行的第一个非blank字符
$ → 到行尾
**g_ → 到本行最后一个不是blank字符的位置。(×××)
fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
t, → 到逗号前的第一个字符。逗号可以变成其它字符。**
3fa → 在当前行查找第三个出现的a。
F 和 T → 和 f 和 t 一样,只不过是相反方向。
Line moves
还有一个很有用的命令是 dt” → 删除所有的内容,直到遇到双引号—— ” 下面,让我来说说最强的光标移动:
% : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
* 和 #: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
区域选择 a 或 i
在visual 模式下,这些命令很强大,其命令格式为
a 和 i (好到爆)
action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。
object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。
假设你有一个字符串 (map (+) (“foo”)).而光标键在第一个 o 的位置。
vi" → 会选择 foo.
va" → 会选择 "foo".
vi) → 会选择 "foo".
va) → 会选择("foo").
v2i) → 会选择 map (+) ("foo")
v2a) → 会选择 (map (+) ("foo"))
块操作:
块操作,典型的操作: 0 I– [ESC]
^ → 到行头
<C-v> → 开始块操作
<C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。
Rectangular blocks