22401860那个题目很像啊

都是问货币能不能增多,钻社会制度得空子啊哈哈

唯一不同得是你的起点是任意一个点,这个比较麻烦了,多了一层循环嘞

处理货币名可以用map分配id

然后就是老套的Billman_ford算法了

#include <iostream>
#include <map>
#include <vector>
#include <string.h>
#include <cstdio>
#include <string>
using namespace std;
const int maxn = 40;
map<string,int> id;
double dis[maxn];
struct node{
int from,to;
double v;
node(int f,int t,double va):from(f),to(t),v(va){}
node(){}
};

这次联系了Stl中得容器,熟悉熟悉

int main()
{
int n,m;
string s,a,b;
double v;
int cas = 1;
while(~scanf("%d",&n),n)
{
id.clear();
edge.clear();
for(int i = 1;i <= n;i++)
{
cin>>s;
id[s] = i;
}
scanf("%d",&m);
while(m--)
{
cin>>a;
scanf("%lf",&v);
cin>>b;
edge.push_back(node(id[a],id[b],v));
}
printf("Case %d: ",cas++);
for(int i = 1;i <= n;i++)
{
if(blm(i,n))
{
printf("Yes\n");
break;
}
else if(i == n)printf("No\n");
}
}
return 0;
}
vector<node> edge;
bool blm(int s,int n)
{
for(int i = 1;i <= n;i++)dis[i] = 0;
dis[s] = 1.0;
for(int i = 1;i < n;i++)
{
for(int j = 0;j < edge.size();j++)
{
int from = edge[j].from;
int to = edge[j].to;
double v = edge[j].v;
//cout<<from<<" "<<to<<" "<<v<<endl;
dis[to] = max(dis[to],dis[from] * v);
}
//cout<<"cs"<<endl;
}
for(int i = 0;i < edge.size();i++)
{
int from = edge[i].from;
int to = edge[i].to;
double v = edge[i].v;
if(dis[to] < dis[from] * v)return true;
}
return false;
}

Billman_ford货币升值——正权回路的更多相关文章

  1. 图论 --- spfa + 链式向前星 : 判断是否存在正权回路 poj 1860 : Currency Exchange

    Currency Exchange Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 19881   Accepted: 711 ...

  2. poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)

    链接:poj 1860 题意:给定n中货币.以及它们之间的税率.A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量, 求货币S通过若干此转换,再转换为原本的货币时是否会添加 分 ...

  3. POJ1860-Currency Exchange (正权回路)【Bellman-Ford】

    <题目链接> <转载于 >>> > 题目大意: 有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0. ...

  4. Currency Exchange 货币兑换 Bellman-Ford SPFA 判正权回路

    Description Several currency exchange points are working in our city. Let us suppose that each point ...

  5. [ACM] hdu 1217 Arbitrage (bellman_ford最短路,推断是否有正权回路或Floyed)

    Arbitrage Problem Description Arbitrage is the use of discrepancies in currency exchange rates to tr ...

  6. Bellman_ford货币兑换——正权回路判断

    POJ1860 题目大意:你在某一点有一些钱,给定你两点之间钱得兑换规则,问你有没有办法使你手里的钱增多.就是想看看转一圈我的钱能不能增多,出现这一点得条件就是有兑换钱得正权回路,所以选择用bellm ...

  7. POJ 1860 Currency Exchange(最短路&spfa正权回路)题解

    题意:n种钱,m种汇率转换,若ab汇率p,手续费q,则b=(a-q)*p,你有第s种钱v数量,问你能不能通过转化让你的s种钱变多? 思路:因为过程中可能有负权值,用spfa.求是否有正权回路,dis[ ...

  8. HDU - 1317 ~ SPFA正权回路的判断

    题意:有最多一百个房间,房间之间连通,到达另一个房间会消耗能量值或者增加能量值,求是否能从一号房间到达n号房间. 看数据,有定5个房间,下面有5行,第 iii 行代表 iii 号 房间的信息,第一个数 ...

  9. POJ 3259 Wormholes(最短路&spfa正权回路)题解

    题意:给你m条路花费时间(双向正权路径),w个虫洞返回时间(单向负权路径),问你他能不能走一圈回到原点之后,时间倒流. 思路:题意有点难看懂,我们建完边之后找一下是否存在负权回路,存在则能,反之不能. ...

随机推荐

  1. 安装 neo4j 在 .../bin 目录下使用 ./neo4j 没反应 和 从csv 导入数据到neo4j

    可以使用 /bin/sh ./neo4j start 如果提示:./neo4j: 28: set: Illegal option -o pipefail 那么 ubuntu”set Illegal o ...

  2. Elon Musk

    人物事件 成长学习 年6月28日,埃隆·马斯克在南非的比勒陀利亚出生,他的 埃隆·马斯克 父亲是一名南非机电工程师,母亲是加拿大人,从事营养师兼模特.[8]  年,10岁的马斯克就拥有了自己的第一台电 ...

  3. 大型运输行业实战_day07_2_数据字典实现

    1.数据字典表 CREATE TABLE `dic` ( `id` ) NOT NULL AUTO_INCREMENT, `table_name` ) DEFAULT NULL, `field_nam ...

  4. sshd_config优化

     sshd_config优化linux系统调优,参考百度搜索  linux ssh命令  /etc/init.d/sshd restart    重启ssh  193  ls  194  vim /e ...

  5. 利用 AWK 的数值计算功能提升工作效率(转载)

    Awk 是一种优秀的文本样式扫描和处理工具.转文侧重介绍了 awk 在数值计算方面的运用,并通过几个实际工作中的例子,阐述了如何利用 awk 的计算功能来提高我们的工作效率.转文源自IBM Bluem ...

  6. cdoj203-Islands 【并查集】

    http://acm.uestc.edu.cn/#/problem/show/203 Islands Time Limit: 30000/10000MS (Java/Others)     Memor ...

  7. 对象池 object pool

    对象池适用于: 对象的创建很耗时 对象频繁地释放再创建 对象池的实现:将释放的对象放进对象池中,在新建对象时,从对象池取对象 public class ObjectPool<T> wher ...

  8. Python调shell

    os.system(cmd) 函数返回cmd的结束状态码,阻塞调用. os.popen(cmd) 函数返回cmd的标准输出,阻塞调用. (status, output) = commands.gets ...

  9. JavaScript的控制语句和循环语句和函数的总结

    10.控制语句---if语句 10_1:if-else语句 if(表达式){ 语句1: .... }else{ 语句1: .... }; 示例: var a = 1; if (a > 0){ a ...

  10. iPhone iPad 各种控件默认高度

    iPhone和iPad下各种常见控件的宽度和标准是一样的,所以这里就用iPhone说明. 以下是常见的几种控件的高度.Statusbar,Navigationbar和Tabbar的宽度极其图标大小. ...