Gym Class HDU
来源:互联网 发布:洋葱英语软件 编辑:程序博客网 时间:2024/06/04 01:25
众所周知,度度熊喜欢各类体育活动。
今天,它终于当上了梦寐以求的体育课老师。第一次课上,它发现一个有趣的事情。在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到N N,在排好队之后,每个同学会找出包括自己在内的前方所有同学的最小ID,作为自己评价这堂课的分数。麻烦的是,有一些同学不希望某个(些)同学排在他(她)前面,在满足这个前提的情况下,新晋体育课老师——度度熊,希望最后的排队结果可以使得所有同学的评价分数和最大。
今天,它终于当上了梦寐以求的体育课老师。第一次课上,它发现一个有趣的事情。在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到
对于每组数据,第一行输入两个整数
接下来
31 02 11 23 13 1
126
拓扑排序,一个简单的模版题,可以看一下我的上一篇博客借鉴的两位大神的博客.
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<set>#include<vector>using namespace std;priority_queue<int> out;vector<int> op[100001];int ru[100001];int main(){ int T; scanf("%d", &T); int n,m; while(T--) { scanf("%d %d",&n,&m); for(int i=1; i<=n; i++) { op[i].clear(); } memset(ru, 0,sizeof(ru)); while(!out.empty()) out.pop(); for(int i=1; i<=m; i++) { int u,v; scanf("%d %d",&u,&v); ru[v]++; op[u].push_back(v); } for(int i=1; i<=n; i++) { if(ru[i]==0)out.push(i); } //int edg = m; long long sum = 0; long long minn = 99999999999; while(!out.empty()) { int p = out.top(); out.pop(); minn = min(minn, (long long)p); sum += minn; int len = op[p].size(); for(int i=0; i<len; i++) { ru[op[p][i]]--; if(ru[ op[p][i] ]==0){out.push(op[p][i]);} } } cout << sum << endl; } return 0;}
水波.
阅读全文
0 0
- HDU 5695 Gym Class
- hdu 5695 Gym Class
- HDU 5695 Gym Class
- HDU 5695 Gym Class
- 【HDU 5695 Gym Class】
- HDU 5695 Gym Class
- Gym Class HDU
- hdu 5695 Gym Class
- HDU 5695 Gym Class(拓扑排序)
- 拓扑 hdu 5695(Gym Class)
- 【HDU】5695 - Gym Class(拓扑)
- HDU-5695 Gym Class(拓扑排序)
- HDU 5695 Gym Class 拓扑排序
- HDU 5695 Gym Class 拓扑排序
- Gym Class
- HDU-5695-Gym Class(拓扑排序+优先队列)
- hdu 5695 Gym Class【拓扑排序+优先队列】
- HDU 5695 Gym Class (拓扑排序+优先队列)
- C++输入输出流
- MySQL 大表优化方案
- Leetcode Populating Next Right Pointers in Each Node
- SpringMVC 拦截器 详解
- 通用常见工具汇总<Pair,Tuple,>.
- Gym Class HDU
- PHP编码规范
- 云笔记项目 Unit06
- java:程序包XXXX不存在
- OpenSIPS+FreeSWITCH负载均衡+NAT+黑名单
- MySQL ODBC驱动安装和配置数据源
- 容器对路径的处理 、 Servlet特性
- 【OpenGL】OpenGL基本库,OpenGL实用库及OpenGL实用函数工具包之间的差别
- 英语词组