http://poj.org/problem?id=2240

用log化乘法为加法找正圈

c++ 110ms,g++tle

#include <string>
#include <map>
#include <iostream>
#include <cmath>
#include <cstring>
#include <queue>
using namespace std;
const int maxn = 50;
bool vis[maxn];
double chg[maxn][maxn];
double dis[maxn];
int e[maxn][maxn],deg[maxn];
map<string,int> idmp;
int n,m;
const double inf = 0x3fffffff; queue<int> que;
bool hasloop(int s){
while(!que.empty())que.pop();
que.push(s);
vis[s] = true;
int cnt = 0;
while(!que.empty()){
cnt ++;
s = que.front();que.pop();vis[s] = false;
for(int i = 0;i < deg[s];i++)
{
int t = e[s][i];
if(dis[t] < dis[s] + chg[s][t])
{
dis[t] = dis[s] + chg[s][t];
que.push(t);
vis[t] = true;
}
}
if(cnt > n * n)return true;
}
return false;
} int main(){
int ti = 0;
while(cin>>n && n && ++ti){
idmp.clear();
for(int i = 0;i < n;i++)
{
dis[i] = -inf;
for(int j = 0;j < n;j++)chg[i][j] = -inf;
}
memset(vis,false,sizeof vis);
memset(deg,0,sizeof deg); for(int i = 0;i < n;i++)
{
string tmp;
cin>>tmp;
idmp[tmp] = i;
}
cin>>m;
for(int i = 0;i < m;i++)
{
string sf,st;
double change;
cin>>sf>>change>>st;
change = log(change);
int f = idmp[sf];
int t = idmp[st];
chg[f][t] = change;
e[f][deg[f]++] = t;
}
bool fl = false;
for(int i = 0;i < n;i++)
{
if(dis[i] == -inf){
dis[i] = 1;
if(hasloop(i)){
fl = true;
break;
}
}
}
cout << "Case " << ti << ": ";
if(fl)cout << "Yes" <<endl;
else cout << "No" << endl;
}
return 0;
}

  

POJ 2240 && ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0的更多相关文章

  1. 最短路(Floyd_Warshall) POJ 2240 Arbitrage

    题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <c ...

  2. POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)

    POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...

  3. poj 2240 Arbitrage 题解

    Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21300   Accepted: 9079 Descri ...

  4. poj 2240 Arbitrage (Floyd)

    链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 Britis ...

  5. poj 2449(A*求第K短路)

    题目链接:http://poj.org/problem?id=2449 思路:我们可以定义g[x]为源点到当前点的距离,h[x]为当前点到目标节点的最短距离,显然有h[x]<=h*[x](h*[ ...

  6. POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)

    题目链接 题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket . 思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接 ...

  7. POJ 3076 / ZOJ 3122 Sudoku(DLX)

    Description A Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells ...

  8. poj 3100 (zoj 2818)||ZOJ 2829 ||ZOJ 1938 (poj 2249)

    水题三题: 1.给你B和N,求个整数A使得A^n最接近B 2. 输出第N个能被3或者5整除的数 3.给你整数n和k,让你求组合数c(n,k) 1.poj 3100 (zoj 2818) Root of ...

  9. POJ - 1062 昂贵的聘礼(最短路Dijkstra)

    昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u SubmitStatus Descr ...

随机推荐

  1. 展讯DTS路径及编译

    DTS路径:/kernel/arch/arm/boot/dts 如何查找修改当前TP的DTS配置(分辨率)的文件:1.查找make file,找关键字都包含CONFIG_MACH,在/kernel/a ...

  2. Linux下查看文件权限、修改文件权限的方法

    查看权限命令查看目录的相关权限可以采用命令ls -lD,或者直接用ls -la 如 ls -l www.jb51.net  //这里表示查看www.jb51.net目录 修改权限命令 chmod 77 ...

  3. hostapd源代码分析(一):网络接口和BSS的初始化

    [转]hostapd源代码分析(一):网络接口和BSS的初始化 原文链接:http://blog.csdn.net/qq_21949217/article/details/46004349 最近在做一 ...

  4. Android Netty框架的使用

    Netty框架的使用 1 TCP开发范例 发送地址---192.168.31.241 发送端口号---9223 发送数据 { "userid":"mm910@mbk.co ...

  5. Java用WebSocket + tail命令实现Web实时日志

    原文:http://blog.csdn.net/xiao__gui/article/details/50041673 在Linux操作系统中,经常需要查看日志文件的实时输出内容,通常会使用tail - ...

  6. 项目开发中遇到的extjs常见问题

    事件触发机制 l 给某一个控件添加事件. obj.addEvents( {search : true }); l 给某一个事件添加处理函数 n 给一个对象或变量添加监听及对应得处理,可以在创建时,通过 ...

  7. 20160815_设置静态IP

    1.CentOS6.4x64里面默认没有文件"/etc/sysconfig/network-scripts/ifcfg-eth0"(还是 是有的,但是默认为空??以后再看吧...) ...

  8. 20160805_CentOS6_控制台切换

    1. Ctrl + Alt + F1~F6 Ctrl + Alt + F1 是 图形界面(如果装了的话),后面的是 控制台界面 2. 3.

  9. Convention插件 struts零配置

    http://blog.csdn.net/spyjava/article/details/13631961系列课程使用 注解:http://www.yiibai.com/struts_2/struts ...

  10. oracel数据库基本知识和基本查询方法

    Oracel数据库学习1.小型数据库 access,foxbase 中型数据库 mysql,sqlserver,informix 大型数据库 sybase,Oracle,db2 Oracle数据库需求 ...