栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1238 Arbitrage

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1238 Arbitrage

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;#define MAXN 25#define INF 1000000#define exp 0.01double Profit[MAXN][MAXN][MAXN];int Trace[MAXN][MAXN][MAXN], oTrace[MAXN];int nCase;int flord(){    for(int step = 2; step <= nCase; step++)        for(int k = 1; k <= nCase; k++) for(int i = 1; i <= nCase; i++)     for(int j = 1; j <= nCase; j++){         if(Profit[i][j][step] < Profit[i][k][step - 1] * Profit[k][j][1]){  Profit[i][j][step] = Profit[i][k][step - 1] * Profit[k][j][1];  Trace[i][j][step] = k;  if(Profit[i][j][step] > 1.01 && i == j){      oTrace[0] = step;      oTrace[step + 1] = i;      while(step > 0){          oTrace[step] = Trace[i][j][step];          j = Trace[i][j][step];          step--;      }      return 1;  }         }     }    return 0;}int main(){    while(scanf("%d", &nCase) == 1) {        memset(Profit, 0, sizeof(Profit));        memset(Trace, 0, sizeof(Trace));        for(int i = 1; i <= nCase; i++) for(int j = 1; j <= nCase; j++){     if(i != j) {         scanf("%lf", &Profit[i][j][1]);     }else Profit[i][j][1] = 1.0;     Trace[i][j][1] = i; }        if(flord()) { for(int i = 1; i <= oTrace[0] + 1; i++) {     printf("%d", oTrace[i]);     if(i != oTrace[0] + 1)         printf(" ");     else printf("n"); }        } else printf("no arbitrage sequence existsn");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号