hdu 565 入门题
来源:互联网 发布:淘宝产品打折功能收费 编辑:程序博客网 时间:2024/05/29 18:33
点击打开题目
思路:当然是从大到小排序,分数才会最大,可是有限制不能完全按照大小排序,不过可以从已经排好的人去解除他人的限制,说白了,拓扑排序,很简单的一个题。
#include<cstdio>#include<queue>#include<algorithm>using namespace std;int vis[100001];vector<int>f[100001];int n,m;void clear(){for(int i=0;i<=n;i++){vis[i]=0;f[i].clear();}}void toposort(){int i,u;int m=9999999;long long ans=0;priority_queue<int,vector<int>,less<int> >q;for(i=1;i<=n;i++)if(!vis[i])q.push(i);while(!q.empty()){u=q.top();q.pop();m=min(m,u);ans+=m;for(i=0;i<f[u].size();i++){int t=f[u][i];vis[t]--;if(!vis[t])q.push(t);}}printf("%lld\n",ans);}int main(){int T;scanf("%d",&T);while(T--){int i,u,v;scanf("%d%d",&n,&m);clear();for(i=0;i<m;i++){scanf("%d%d",&u,&v);vis[v]++;f[u].push_back(v);}toposort();}}
阅读全文
0 0
- hdu 565 入门题
- hdu入门搜索题
- kmp 入门题(hdu 1711)
- hdu 2255 km入门题
- hdu 1176 dp入门题
- hdu 1421 dp 入门题
- hdu 2571 dp入门题
- hdu 1422 dp入门题
- hdu 1247 Trie入门题
- hdu 4259 置换入门题
- KMP入门题 HDU1686、hdu 1711、hdu 2203
- HDU 3062 & HDU 1824 (2-sat入门题)
- AC自动机入门题(HDU 2222 + HDU 2896)
- hdu 1166 树状数组 入门题
- hdu 2222(AC自动机入门题)
- hdu 2222(ac自动机入门题)
- hdu 3853 LOOPS 概率dp入门题
- HDU 3062 Party 2-SAT 入门题
- form表单在spring 开发环境下的提交
- Sqoop2 Java客户端API指南
- Apache的https实现
- cocos-2d sufaceView 与活动通信导致变黑变白问题
- Java后台框架篇--Springsecurity(一)
- hdu 565 入门题
- 输入输出
- 【yoyo】Servlet和Filter
- Unity3d背包系统系统(一)——第一个类(Item物品类)
- Merge k Sorted Lists
- UDP协议
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- [LeetCode]8. String to Integer(atoi)
- 面向对象