Gym Class

Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 681    Accepted Submission(s): 271

Problem Description
众所周知,度度熊喜欢各类体育活动。

今天,它终于当上了梦寐以求的体育课老师。第一次课上,它发现一个有趣的事情。在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到N

,在排好队之后,每个同学会找出包括自己在内的前方所有同学的最小ID,作为自己评价这堂课的分数。麻烦的是,有一些同学不希望某个(些)同学排在他(她)前面,在满足这个前提的情况下,新晋体育课老师——度度熊,希望最后的排队结果可以使得所有同学的评价分数和最大。

 
Input
第一行一个整数T

,表示T(1≤T≤30)

组数据。

对于每组数据,第一行输入两个整数N

和M(1≤N≤100000,0≤M≤100000)

,分别表示总人数和某些同学的偏好。

接下来M

行,每行两个整数A

和B(1≤A,B≤N)

,表示ID为A

的同学不希望ID为B

的同学排在他(她)之前。你可以认为题目保证至少有一种排列方法是符合所有要求的。

 
Output
对于每组数据,输出最大分数 。
 
Sample Input
3
1 0
2 1
1 2
3 1
3 1
 
 
Sample Output
1
2
6
 
Source
 
题意:中文题面
 
题解: 拓扑排序+优先队列
         两个姿势复习一遍
         注意代码中标记的wa点
 
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<queue>
  5. #include<stack>
  6. #include<vector>
  7. #include<map>
  8. #define ll __int64
  9. using namespace std;
  10. vector<int> mp[];
  11. int in[];
  12. int t;
  13. int ans[];
  14. int vis[];
  15. struct node
  16. {
  17. int x;
  18. friend bool operator < (node aa,node bb)
  19. {
  20. return aa.x<bb.x;
  21. }
  22. };
  23. priority_queue<node> p;
  24. int n,m,a,b;
  25. int main()
  26. {
  27. while(scanf("%d",&t)!=EOF)
  28. {
  29. for(int i=;i<=t;i++)
  30. {
  31. scanf("%d %d",&n,&m);
  32. int jishu=;
  33. struct node exm;
  34. memset(ans,,sizeof(ans));
  35. for(int j=;j<=n;j++)
  36. {
  37. mp[j].clear();
  38. in[j]=;
  39. vis[j]=;
  40. }
  41. for(int j=;j<=m;j++)
  42. {
  43. scanf("%d %d",&a,&b);
  44. mp[a].push_back(b);
  45. in[b]++;
  46. }
  47. for(int j=;j<=n;j++)
  48. {
  49. if(in[j]==)
  50. {
  51. exm.x=j;
  52. vis[j]=;
  53. p.push(exm);
  54. }
  55. }
  56. while(!p.empty())
  57. {
  58. exm=p.top();
  59. ans[jishu++]=exm.x;
  60. p.pop();
  61. for(unsigned int j=;j<mp[exm.x].size();j++)
  62. {
  63. if(--in[mp[exm.x][j]]==&&vis[mp[exm.x][j]]==)
  64. {
  65. vis[mp[exm.x][j]]==;
  66. struct node ggggg;////wa点
  67. ggggg.x=mp[exm.x][j];
  68. p.push(ggggg);
  69. }
  70. }
  71. }
  72. int minx=ans[];
  73. ll gg=ans[];
  74. for(int j=;j<=n;j++)
  75. {
  76. minx=min(minx,ans[j]);
  77. gg+=minx;
  78. }
  79. printf("%I64d\n",gg);
  80. }
  81. }
  82. return ;
  83. }
 
 
 

2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列的更多相关文章

  1. 2016百度之星-初赛(Astar Round2A)AII X

    Problem Description F(x,m) 代表一个全是由数字x组成的m位数字.请计算,以下式子是否成立: F(x,m) mod k ≡ c Input 第一行一个整数T,表示T组数据. 每 ...

  2. 2016"百度之星" - 初赛(Astar Round2B) 1006 中位数计数

    思路:统计当前数左边比它小|大 i个人,相应右边就应该是比它大|小i个人 l数组表示左边i个人的方案 r表示右边i个人的方案 数组下标不可能是负数所以要加n //#pragma comment(lin ...

  3. HDU 5690:2016"百度之星" - 初赛 All X

    原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  4. 2016百度之星 初赛2A ABEF

    只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...

  5. HDU 4857 拓扑排序 优先队列

    n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得 ...

  6. 2016 百度之星初赛 Gym Class(优先队列+拓扑排序)

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Pract ...

  7. 2014百度之星初赛第二场hdu 4831 Scenic Popularity

    Scenic Popularity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. HDU 5638 拓扑排序+优先队列

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序 ...

  9. hdu 5690 2016"百度之星" - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5690 题意:m个数字全为x mod k ?= c;其中m <= 1010,0 < c,k ...

随机推荐

  1. 一张思维导图带你梳理HashMap相关知识

    HashMap可以说是java中最常见也是最重要的key-value存储结构类,很多程序员可能经常用,但是不一定清楚这个类背后的数据结构和相关操作原理,为了复习HashMap相关的知识,今天花了一天的 ...

  2. JAVA / MySql 编程—— 第四章 高级查询(二)

    1.        EXISTS和NOT EXISTS子查询:EXISTS关键字用来检测数数据库对象是否存在.                  ★EXISTS和NOT EXISTS的结果只取决于是否 ...

  3. python中的字典内置方法小结

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- #key-value #dict 无序,无下标,不需要下标,因为有key stu={ 'stu001': ...

  4. Apache安装之后,在浏览器输入ip无法访问

    博主本来在linux下面配置安装了apache,然后用浏览器输入ip却无法访问 就一直在想是不是dns无法解析的问题,最后才发现原来是防火墙的原因, 在linux下面 service iptables ...

  5. Nginx技术深入剖析

    Nginx软件功能模块说明 核心功能模块(Core functionality):主要对应配置文件的Main区块和Events区块. 标准的http功能模块: 企业 场景常用的Nginx http功能 ...

  6. maston总结

    Substitution Tags(替换标签) % ; # this is embedded Perl You have <% $cd_count %> CDs. Escaping sub ...

  7. 10,before_request 和 after_request

    Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__na ...

  8. Hibernate---数据操作示例BY实体类注释

    通过实体的映射文件创建表的示例,除了基本jar包外,还需要jar包如下 ejb3-persistence.jar.hibernate-annotations.jar这两个包均在hibernate-an ...

  9. 7.Mongodb安全性流程

    1.安全性流程 2.超级管理员 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户 采用了角色-用户-数据库的安全管理方式 常用系统角色如下: root:只 ...

  10. windows下使用Python出现No module named tkinter.ttk

    1. 编辑工具使用Pycharm,windows平台,运行的时候报错误 2. 目前用的是Python2.7版本,对比了一下已有的库,名字不太一样,因此换成Python3.6的测试一下暂时没这个问题了. ...