题意:孩子们在幼儿园非常喜欢老虎抓小鸡的游戏。但是有一个比较大的问题:每一个人都想演老虎的角色。
因此老师提出一个建议:选举。每个孩子手里面有一些漂亮的手帕,如果他认为某个人适合老虎的角色,
他就拿出一个手帕给他,也就是说得到手帕就是得到支持的一票。注意支持是可以传递的。最后得到支持
票数最多的人将扮演老虎的角色。(注意:如果A赢得B的支持,A只能得到B的一票,不管B有多少票,既是说A = B得到的选票 + 1,A不能投自己一票)如果多个人获得同样多的票,我们称他们都是赢家。
  例子:三个人 A,B,C。A拿一个手帕给B, B拿一个手帕给C, 因此 C得到2个手帕,C被选为扮演老虎。
先输入一个测试样例数T,然后输入n 和 m,n是人数(0 ~ n - 1),下面是m行 A B (A!= B)代表A支持B。
输出最大得票数,和得票者。

  

  这题我做的时候求强连通分支、缩点都很顺利,后来还是WA了,后来看了别人的代码才发现我的问题:在计算每个点(已缩)的最大值除了问题。见下图.

  缩完点有可能出现图中的情况(因为上图并不是强连通的,只是个弱连通,所以有可能出现),在我原来的程序中DFS计算点4的票数时会把点3 的贡献给忽略了,从而点5的值也就错了。正确的做法是按照上图建个逆图(边的方向相反,如下图),这样从逆图的根(准确来讲是入度为0的点,因为这样的点在图中可能不只一个)开始DFS计算根的值,就能方便正确地得到点5 的值了。

  至于为什么要选择从入度为0的点开始DFS并比较这些点的值的大小(换句话说为什么答案一定出自这些点)?如果假设最大值存在于一个入度不为0的分量中,那么连接这个分量的 那个分量票数支持肯定大于这个分量,假设不成立。

逆向图DFS的伪代码:

void dfs(int u)
{   num[u]=n[u];for each(u,v) in 逆向图{dfs(v);num[u]+=num[v];}
}            

转载于:https://www.cnblogs.com/wuminye/archive/2013/03/14/2960381.html

HDU 3639 Hawk-and-Chicken相关推荐

  1. Week8 作业 C - 班长竞选 SCC Kosaraju HDU - 3639

    题目描述 大学班级选班长,N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适,意见具有传递性,即 A 认为 B 合适,B 认为 C 合适,则 A 也认为 C 合适 勤劳的 TT 收 ...

  2. 直接在Visual Studio代码编辑器中加密字符串文件

    String encryption is used everywhere in desktop & mobile software. You might not even know about ...

  3. 查看数值类型python_python 查询数据库返回的数据类型

    self.conn=MySQLdb.connect(host='localhost',port=3306, user='keystone', passwd='OptValley@4312', db=s ...

  4. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  5. HDU ACM Steps 攻略

    HDU ACM Steps 攻略- Admin 2011年10月14日 名人名言:未来是光明而美丽的,爱它吧,向它突进,为它工作,迎接它,尽可能地使它成为现实吧!--车尔尼雪夫斯基 总结了一下ACM ...

  6. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  7. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  8. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  9. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

  10. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

最新文章

  1. CGpoint,CGSize,CGRect,NSRange
  2. Flex通信-Java服务端通信实例
  3. 微信账号,欢迎一起探讨信息、知识、学习和管理!
  4. C#中实现命令行交互输入输出
  5. BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
  6. 正式发布!Azure Functions OpenAPI Extension
  7. stringstream实例
  8. 线程创建-结束-回收 教程
  9. 数据结构链表之单链表的快慢指针——3
  10. 传送带(洛谷-P2571)
  11. Bootstrap使用 .dropdown-menu 类创建下拉菜单
  12. java doc转mht_Word文档格式doc转为mht.doc
  13. [文摘20080226]领导法则 - 陈安之
  14. ROS常用命令及脚本
  15. android 定时响铃,Android开发振动和响铃
  16. 操作系统 计算机操作系统教程笔记
  17. R语言线性回归和时间序列分析北京房价影响因素可视化案例
  18. Java 开发实习生面试题(1)
  19. 有理数化简,结构体C/C++
  20. 银行SWIFT/BIC编码介绍

热门文章

  1. ChannelHandler 接口继承关系图
  2. Netty 整合 MessagePack 序列化框架 + LengthFieldBasedFrameDecoder 自定义解码器
  3. Git命令之查看及设置用户名邮箱
  4. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_07.环境搭建的注意事项
  5. java自动化学习笔记
  6. C++基础——new与delete
  7. Response.ContentType 控制输出文件类型(讨论下载文件问题)
  8. from pristine store, because no checksum is recorded for this file
  9. spring mvc 的上传图片是怎么实现的?
  10. javaee--学生成绩录入与显示--Struts2标签的使用