摘要:
一直不会打……今天补上 阅读全文
摘要:
void tarjan(int x) { dfn[x]=++cnt;low[x]=cnt; vi[x]=1; stack[++top]=x; for(rint i=f(x);i;i=n(i)) if(!dfn[v(i)])tarjan(v(i)),low[x]=min(low[x],low[v(i)]); else if(vi[v(... 阅读全文
摘要:
某次考试因为不会写板子,自己造出来的,所以有点丑…… 阅读全文
摘要:
int getf(int x){return (f[x]==x)?x:f[x]=getf(f[x]);} void hb(int x,int y){x=getf(x),y=getf(y),f[y]=x;} inline void add(int u,int v,int w,int c); int kruskal() { int num=0;ans=0; for(int i=0;i... 阅读全文
该文被密码保护。 阅读全文
摘要:
[HAOI2010]软件安装 开始没有看懂题,以为就是个树形依赖背包,打完之后W40,然后才发现它会有还,要用tarjan缩完点后跑背包,要建立一个虚拟节点0连接所有的子图(注意连接的位置)。 但是有个细节卡了我好长时间: 错误示范: 正确代码: 在缩点是记录每个scc的入度,0直接和入度为0的sc 阅读全文
摘要:
「HNOI2015」菜肴制作 这道题想到了其实还挺水的,一开始我直接用小根堆拓扑然后就爆0了,然后我又用十万个堆搜索,T30,还是xkl告诉我要倒着拓扑。 首先要建反图,对于入度为0的点,较小的点先输出所以要优先拓扑大的点,这样就保证了大的点及其子树(其实并不是树,这样好理解点)都存在数组前面,再倒 阅读全文
该文被密码保护。 阅读全文