3486. 【NOIP2013模拟联考10】道路改建(rebuild)(2017.12A组)(tarjan缩环+拓补排序+DP+bitset)
来源:互联网 发布:excel数据分析函数 编辑:程序博客网 时间:2024/05/18 00:17
Description
人称不死将军的林登·万,与他的兄弟林登·图两人的足迹踏遍了地球的每一寸土地。他们曾将战火燃遍了世界。即使是lifei888这样的强悍人物也从来没有将他彻底击败。
这一次,林登·万在N个城市做好了暴动的策划。然而,在起事的前一天,将军得知计划已经泄漏,决定更改计划,集中力量掌握一部分城市。
具体来说,有M条单向边连接着这N座城市。对于两座城市A,B,如果它们能够通过单向边直接或间接的互相到达,那么就林登·万可以同时控制A,B两座城市而不至于分散力量,反之则会被lifei888各个击破。
为了扩大成果,将军还组织了人手改建道路。这些人可以在起事前将其中一条有向边改变成双向边(注意只能改建其中一条单向边,另外M-1条单向边保持不变),现在,将军想要知道他通过改建其中一条单向边最多能控制几座城市,以及被改建的这一条单向边有多少种选择方案。
Input
第一行为两个正整数N,M。
接下来M行每行两个范围在1~N内的正整数x,y,表示有一条从x到y的单向边。
输入保证任意两点的任意方向最多只有一条边直接相连。
Output
输出共三行。
第一行一个正整数,将军最多能控制的城市数量。
第二行一个正整数L,表示有L种改建方案使得将军能控制最多的城市。
第三行L个按递增顺序给出的正整数ki,表示改建输入中的第ki条有向边能使将军能控制最多的城市。
Sample Input
输入1:
5 4
1 2
2 3
1 3
4 1
输入2:
3 4
1 2
2 1
1 3
3 1
Sample Output
输出1:
3
1
3
输出2:
3
4
1 2 3 4
Data Constraint
对于30%的数据,N,M<=10;对于60%的数据,N<=1500,M<=100000
对于100%的数据,N<=2000 M<=N*N
想法:
用tarjan把每个强连通分量缩成点
将新的图拓补排序,正反都要
然后设f1[i]表示i能到达的集合,f2[i]表示能到达i的集合
这个用bitset存
然后对与每个修改前的边(u,v),新的强连通分量为f1[u]&f2[v],
然后新的强连通分量,与原图其他强连通分量最多1个数的即为修改这条边的答案
- 3486. 【NOIP2013模拟联考10】道路改建(rebuild)(2017.12A组)(tarjan缩环+拓补排序+DP+bitset)
- [jzoj]3486. 【NOIP2013模拟联考10】道路改建(rebuild)(缩环+Tarjan+拓扑+bitset记录状态)
- 【NOIP2013模拟联考12】数数(数位dp||类欧几里得)
- jzoj[3521]. 【NOIP2013模拟11.7B组】道路覆盖(cover) (状压DP)
- [jzoj]3468. 【NOIP2013模拟联考7】OSU!(osu) (期望DP)
- [jzoj]3472. 【NOIP2013模拟联考8】匹配(match)(AC自动机+DP)
- 3492. 【NOIP2013模拟联考12】数数(count)(循环节/DP)
- SSL2864 【NOIP2013模拟联考15】物语(spfa优化)
- JZOJ3456. 【NOIP2013模拟联考3】恭介的法则(rule)(2017.8B组)
- JZOJ3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll) (2017.8B组)
- 3494. 【NOIP2013模拟联考13】线段(segment) (2017.9B组)
- 【NOIP2013模拟联考10】独立集(bubble)
- JZOJsenior3484.【NOIP2013模拟联考10】密码(substring)
- jzoj3501 【NOIP2013模拟联考15】消息传递(news) 树形dp
- [jzoj]3511. 【NOIP2013模拟11.5A组】cza的蛋糕(cake)(DP嵌套dfs【快】或DP【慢】)
- 【NOIP2013模拟联考13】线段
- 【NOIP2013模拟联考7】数列
- 【NOIP2013模拟联考5】军训
- BZOJ2525: [Poi2011]Dynamite
- 1045. 快速排序(25) PAT乙级真题
- [POJ](1631)Bridging signals ---- LIS+O(nlogn)优化(二分)
- 设计模式——观察者模式
- 用C++编写递归函数GetPower(int x,int y)计算x的y次幂,在同一程序里中针对整型和实型实现两个重载的函数;在主程序中实现输入输出
- 3486. 【NOIP2013模拟联考10】道路改建(rebuild)(2017.12A组)(tarjan缩环+拓补排序+DP+bitset)
- 图解设计模式
- 加速神经网络训练方法-Adam公式
- JAVA 构造方法 静态变量 静态方法
- js-----二级菜单联动
- 【学习C++】Map使用
- Surf算法
- Coins
- 深入理解dubbo:dubbo分布式+拓展:把web和service不仅分开为不同的项目,还分开到两台机器上。