昨天ZJC大佬组织了个小测试,三道题接近四个小时的时间,而且一看都几乎是模板题,乐呵呵地写完后测了几个样例对了过后就开始浪了,以为可以全对的。
结果。
爆零!!!?????(声败名裂系列
真是太令人窒息了。请ZJC看了,算法没问题啊??他说他觉得是对的。我也觉得aaa!!亏我还现学了一下优先队列的函数还背了读入优化。然后用数据疯狂调试,发现0和9怎么读不进去??
卧槽读入优化多谢了两个=!!!(while ( ch >=9 && ch <= 0 )... 心情复杂。
改了重测215,beauty确实题意理解错了,但这起码也是个第一了aaa!!!还被lsc和zjj同学嘲讽了半天。
好的下次绝对不会错了。
上次多校联训讲了tarjan,但是基本没懂,代码也没记住,只是大概知道是个什么东西。
ZJC讲了果真要清楚得多啦,做了几道模板题也差不多可以用了。
void tarjan ( int u ) {
dfn [u] = low [u] = ++tdfs ;
stack [++tp] = u ;
vis [u] = 1;
for ( int i = head [u] ; i ; i = nex [i]) {
if ( !dfn [tov [i]] ) {
tarjan ( tov [i] ) ;
low [u] = min ( low [u] , low [tov [i]] ) ;
}
else if ( vis [tov [i]] ) low [u] = min ( low [u] , dfn [ tov [i]] ) ;
}
if ( dfn [u] == low [u] ) {
place [u] = ++scccnt;
vis [u] = 0 ;
int x ;
do {
x = stack [tp--] ;
vis [x] = 0 ;
scc [scccnt] = x ;
place [x] = scccnt ;
} while ( x != u ) ;
}
}
差不多是这样的吧??如果有错再改。
最近在尝试新的代码风格呢疯狂空格。
反正网上解析多的是,也就不想写了。
想学会vim。
继续努力。