acm1217教训
能用容器去做的用容器做,尽量少用数组,即使自己明确其数量的上届;
#include<iostream>
#include<cstring>
#include<map>//后来我用了一个map容器才能通过,如果自己建立数组就是不过,不知道到底哪里超出了;它明明说的是少于30个,现在做题题意也欺骗人了;
using namespace std;
const int N=;
int ok;
map<string,int>my_map;
void nameinput(int n)
{
string name;
for(int i=;i<=n;i++)
{
cin>>name;
my_map[name]=i;
}
}
double money[N][N];
void Link(int n,int m)
{
//memset(money,-1,sizeof(money));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
money[i][j]=(i==j)?:;
string name1,name2;
double rate;
for(int i=;i<=m;i++)
{
cin>>name1>>rate>>name2;
money[my_map[name1]][my_map[name2]]=rate;
}
my_map.clear();
}
void deal(int n)
{
for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
if(money[i][j]<money[i][k]*money[k][j])
money[i][j]=money[i][k]*money[k][j];
}
for(int i=;i<=n;i++)
if(money[i][i]>)//求回路中两点距离;
{
ok=;break;
}
}
int main()
{
int n,m;
int count=;
while(cin>>n&&n)
{
nameinput(n);
cin>>m;
ok=;
Link(n,m);
deal(n);
if(ok==)cout<<"Case "<<count<<": Yes\n";
else cout<<"Case "<<count<<": No\n";
count++;
}
return ;
}
下面是超时代码:
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
const int N=;
int ok;
int vis[N];
map<string,int>my_map;
string Name[N];
void nameinput(int n)
{
string name;
for(int i=;i<=n;i++)
{
cin>>name;
my_map[name]=i;
}
}
double money[N][N];
void Link(int n,int m)
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
money[i][j]=(i==j)?:;
string name1,name2;
double rate;
for(int i=;i<=m;i++)
{
cin>>name1>>rate>>name2;
money[my_map[name1]][my_map[name2]]=rate;
}
my_map.clear();
}
void process(int n,int start,int sub,double result)
{
if(sub==start)
{
if(result>)ok=;
return;
}
double re=result;
if(ok==)
for(int i=;i<=n;i++)
{
if(money[sub][i]!=-&&!vis[i])
{
vis[i]=;
re=result*money[sub][i];
process(n,start,i,re);
vis[i]=;
}
if(ok==)return;
}
}
int main()
{
int n,m;
int count=;
while(cin>>n&&n)
{
memset(vis,,sizeof(vis));
nameinput(n);
cin>>m;
ok=;
Link(n,m);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
if(money[i][j]!=-)
{
vis[j]=;
process(n,i,j,1.0*money[i][j]);
vis[j]=;
}
}
if(ok==)cout<<"Case "<<count<<": Yes\n";
else cout<<"Case "<<count<<": No\n";
count++;
}
return ;
}
acm1217教训的更多相关文章
- 新人入职100天,聊聊自己的经验&教训
这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感 ...
- android socket编程用Bufferreader读取的一个失败教训
由于我的手机需要用笔记本开的wifi,躺在床上玩手机时需要关电脑或者是要让电脑放歌的时候总是不想下床,于是我想能不能用一个APP,然后通过局域网实现在手机上对电脑进行操控呢?说干就干. 我在电脑上用的 ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- Apache Storm 的历史及经验教训——Nathan Marz【翻译】
英文原文地址 中英文对照地址 History of Apache Storm and lessons learned --项目创建者 Nathan Marz Apache Storm 最近成为了ASF ...
- 七年IT生涯的经验教训
七年IT生涯的经验教训[转]我在IT界也拼打了有好几年了,但是现在和别人比较起来不是很如意.从天分上来说,我在属于智商不低的人:从技术上说,几乎没有我拿不下的:从见解上看,我是很有点子看法的人. ...
- 从Apache Storm学到的经验教训 —— storm的由来(转)
阅读目录 Storm来源 初探 再探 构建第一个版本 被Twitter收购 开源的Storm 发布之后 Storm的技术演进 构建开发者社区版 离开Twitter 提交到Apache Apache孵化 ...
- HttpClient -- 血的教训
HttpClient -- 血的教训 千万别用httpClient 不支持httpVersion2.0 因为这个导致项目重做
- 创业公司Playcafe关门大吉 创始人总结10大失败教训
导读:互联网电视游戏网站PlayCafe的创始人马克·高登森(Mark Goldenson)日前撰文,总结了自己创业失败的十个教训.以下为文章主要内容: 一年半前,我与公司联合创始人戴维·奈格(Dev ...
- 记录一次centos升级gblic的教训
前些天公司项目需要对上传的图片打水印,前端采用angularjs,后端nodejs,网上一搜,找到了一个images的库,在本地Windows环境下试了下还不错,然后就上传测试服务器(centos6. ...
随机推荐
- 【机器学习】多项式回归python实现
[机器学习]多项式回归原理介绍 [机器学习]多项式回归python实现 [机器学习]多项式回归sklearn实现 使用python实现多项式回归,没有使用sklearn等机器学习框架,目的是帮助理解算 ...
- 基于freeRTOS定时器实现闹钟(定时)任务
基于freeRTOS定时器实现闹钟(定时)任务 在智能硬件产品中硬件中,闹钟定时任务是基本的需求.一般通过APP设置定时任务,从云端或者是APP直连硬件将闹钟任务保存在硬件flash中,硬件运行时会去 ...
- LVS+Keepalive+Nginx实现负载均衡
本文参考:http://blog.csdn.net/yinwenjie/article/details/47211551 简单粗暴写一下,做备忘,刚刚搭好没做优化呢,后期补充 一.机器准备 LVS-M ...
- 最全NB-IoT/eMTC物联网解决方案名录汇总
NB-IoT/eMTC等蜂窝物联网技术的成熟和商用,占据低功耗广域网络(LPWAN)的主流地位,推动全球物联网新一轮发展热潮,越来越多的行业开始采用物联网方案来解决解决实际问题.实现落地应用,越来越多 ...
- Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
. 参考界面 : 携程app首页的广告栏, 使用ViewPager实现 自制页面效果图 : 源码下载地址: http://download.csdn.net/detail/han1202 ...
- LintCode-88.最近公共祖先
最近公共祖先 给定一棵二叉树,找到两个节点的最近公共父节点(LCA). 最近公共祖先是两个节点的公共的祖先节点且具有最大深度. 注意事项 假设给出的两个节点都在树中存在 样例 对于下面这棵二叉树 LC ...
- lol人物模型提取(四)
在淘宝上联系了一个3d打印服务的卖家,他要我转成stl.obj.xt.xst.igs任意一种格式给他发过去,我就把它转成了obj格式给他发过去了. 然后他那边打开是这样的,没有贴图,看上去模型 ...
- 图解linux安装tomcat(附常用命令)
本例使用的是centos6.5版本,具体内容如下 一.首先到官方下载tomcat服务 http://tomcat.apache.org/download-70.cgi 二.将tomcat上传至linu ...
- [STL] map,multimap,unordered_map基本用法
map的特性是,所有元素都会根据元素的键值自动被排序.map的所有元素都是pair,同时拥有键值(key)和实值(value).pair的第一元素被视为键值,第二元素被视为实值.map不允许两个元素拥 ...
- Version
题目 有三个操作: \(change \ u \ v \ a \ b\) : \(u\)到\(v\)路径上的点点权加上\(a+k*b\),\(k\)为第几个点,\(u\)为第0个点. \(query ...