hdu-2647 Reward && hdu-2049产生冠军 &&hdu-3342Legal or Not(拓扑排序)
题目链接:
/*Problem : 2647 ( Reward ) Judge Status : Accepted
RunId : 16919085 Language : G++ Author : 2014300227
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta*/
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+;
typedef long long ll;
const ll mod=1e9+;
int n,m,ind[N],u,v,vis[N];
vector<int>ve[N];
struct node
{
int num,pri;
};
node temp;
queue<node>qu;
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
ll ans=;
for(int i=;i<=n;i++)
{
ve[i].clear();
vis[i]=ind[i]=;
}
for(int i=;i<m;i++)
{
scanf("%d%d",&u,&v);
ve[v].push_back(u);
ind[u]++;
}
for(int i=;i<=n;i++)
{
if(!ind[i])
{
temp.num=i;
temp.pri=;
qu.push(temp);
}
}
int cnt=n;
while(!qu.empty())
{
node fr=qu.front();
ans+=(ll)fr.pri;
qu.pop();
cnt--;
int len=ve[fr.num].size();
for(int i=;i<len;i++)
{
int y=ve[fr.num][i];
ind[y]--;
if(ind[y]==)
{
temp.num=y;
temp.pri=fr.pri+;
qu.push(temp);
}
}
}
if(cnt==)printf("%lld\n",ans);
else printf("-1\n");
}
return ;
}
/*Problem : 2094 ( 产生冠军 ) Judge Status : Accepted
RunId : 16919272 Language : G++ Author : 2014300227
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta*/
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+;
typedef long long ll;
const ll mod=1e9+;
int n,ind[N];
map<string,int>mp;
vector<int>ve[N];
string str1[N],str2[N];
int main()
{
while()
{
scanf("%d",&n);
if(n==)break;
for(int i=;i<=n;i++)
{
ve[i].clear();
ind[i]=;
}
int cnt=;
for(int i=;i<n;i++)
{
cin>>str1[i]>>str2[i];
if(mp[str1[i]]==)mp[str1[i]]=cnt++;
if(mp[str2[i]]==)mp[str2[i]]=cnt++;
int u=mp[str1[i]],v=mp[str2[i]];
ve[u].push_back(v);
ind[v]++;
}
int num=;
for(int i=;i<cnt;i++)
{
if(!ind[i])
{
num++;
}
}
if(num!=)printf("No\n");
else printf("Yes\n");
for(int i=;i<n;i++)
{
mp[str1[i]]=;
mp[str2[i]]=;
} }
return ;
}
/*Problem : 2647 ( Reward ) Judge Status : Accepted
RunId : 16919085 Language : G++ Author : 2014300227
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta*/
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+;
typedef long long ll;
const ll mod=1e9+;
int n,m,ind[N],u,v,vis[N];
vector<int>ve[N];
struct node
{
int num,pri;
};
node temp;
queue<node>qu;
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
ll ans=;
for(int i=;i<=n;i++)
{
ve[i].clear();
vis[i]=ind[i]=;
}
for(int i=;i<m;i++)
{
scanf("%d%d",&u,&v);
ve[v].push_back(u);
ind[u]++;
}
for(int i=;i<=n;i++)
{
if(!ind[i])
{
temp.num=i;
temp.pri=;
qu.push(temp);
}
}
int cnt=n;
while(!qu.empty())
{
node fr=qu.front();
ans+=(ll)fr.pri;
qu.pop();
cnt--;
int len=ve[fr.num].size();
for(int i=;i<len;i++)
{
int y=ve[fr.num][i];
ind[y]--;
if(ind[y]==)
{
temp.num=y;
temp.pri=fr.pri+;
qu.push(temp);
}
}
}
if(cnt==)printf("%lld\n",ans);
else printf("-1\n");
}
return ;
}
hdu-2647 Reward && hdu-2049产生冠军 &&hdu-3342Legal or Not(拓扑排序)的更多相关文章
- ACM: hdu 2647 Reward -拓扑排序
hdu 2647 Reward Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- HDU.2647 Reward(拓扑排序 TopSort)
HDU.2647 Reward(拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 这道题有一点变化是要求计算最后的金钱数.最少金钱值是888,最少的 ...
- 题解报告:hdu 2647 Reward(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 Problem Description Dandelion's uncle is a boss ...
- hdu 2647 Reward
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2647 Reward Description Dandelion's uncle is a boss o ...
- HDU 2647 Reward (拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意是给你n点m条有向边,叶子点(出度为0)上的值为888,父亲点为888+1,依次计算... ...
- HDU 2647 Reward(拓扑排序+判断环+分层)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题目大意:要给n个人发工资,告诉你m个关系,给出m行每行a b,表示b的工资小于a的工资,最低工 ...
- HDU 2647 Reward【反向拓扑排序】
Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU——2647 Reward
Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU 2647 Reward(图论-拓扑排序)
Reward Problem Description Dandelion's uncle is a boss of a factory. As the spring festival is comin ...
- hdu 2647 Reward(拓扑排序,反着来)
Reward Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
随机推荐
- 邁向IT專家成功之路的三十則鐵律 鐵律十:IT人思維之道-跳脫框架
莊子的哲學思想歸本於老子,他認為人要解脫束縛必須做到不從任何的角度與任何的時間來看待事物,而是必須與天地同體,然而也唯有如此才能看清宇宙間萬事萬理的真諦.無論是莊子還是老子,他們畢竟是中國古代的聖賢, ...
- mysql序列号发生器
mysql序列号发生器 学习了:http://www.jquerycn.cn/a_14577 还可以这样啊:
- 合并SO为单独交货单
本场景为单步交货 为客户建立专用的route. 增加一个pull rule 在做订单的时候,为订单行选择 上面建立好的route, 连续建立了 2个 订单 SO ...
- C++11 并发指南一(C++11 多线程初探)(转)
引言 C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧, ...
- 找回Xcode7的代码折叠功能
升级到Xcode7后,会发现代码折叠功能不见了,这是怎么回事? 其实这个功能还在的,用以下的快捷键仍然可以折叠代码.只是不能用鼠标实现折叠了:在Xcode菜单里选择Preference——Text E ...
- Machine Learning: 一部气势恢宏的人工智能发展史
转载自:雷锋网 本文作者:陈圳 2016-09-12 09:46 导语:机器学习的从产生,发展,低潮和全盛的历史 雷锋网(公众号:雷锋网)按:本文作者DataCastle数据城堡,主要介绍了机器学习的 ...
- Markdown 语法的超快速上手
本文支持WTFPL协议,因此你想往哪转就往哪转. Why markdown? Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Ma ...
- JSP 随记
jstl <c:forEach> 遍历,多个<option>时显示"全部".单个 option时,默认选中! 引入:<%@ taglib prefix ...
- 安卓版本6.0打开uiautomator报错
可能是appium打开了,被占用:或者是找不到手机
- MySQL 导入导出命令(转载)
导出数据: mysqldump --databases -u root -p密码 数据库名> /root/guogl/XXX.sql 从sql文件导入数据: mysql -u root -p密码 ...