【普组模拟赛】马语翻译
来源:互联网 发布:程序员的自我修养 ppt 编辑:程序博客网 时间:2024/05/16 05:58
【普组模拟赛】马语翻译
题目:
随着马场的繁荣,出现了越来越多的新马种。种族之间的沟通不畅严重影响了马场的和谐。这时,科学家发明了马语翻译机器人,正好可以解决这一难题。
机器人有 M 种,每种机器人能完成 K 个马种之间的语言翻译。问,利用这些机器人,能否实现 1 种群和 N 种群的马语翻译。 若可以,找到翻译过程至少需要用到多少种语言。
比赛时打了一个FLOYED水分
听说可以打SPFA,但我打了个DP
设f[i]表示从第1种语言翻译到第i种语言最少需要经过多少种语言
一开始f都是maxlongint
f[1]=1
每次去扫一遍每个机器人所能翻译的语言
看那个的f最小
用一个x记录下来
接着其他的全都等于min(f[i],f[x]+1)
不停的尝试更新,直到没有更新为止
输出f[n]
标程(请勿抄袭,后果很严重):
var f:array[0..100000]of longint; a:array[1..1000,1..1000]of longint; n,k,m,i,j,l,s,x:longint;begin assign(input,'trans.in'); assign(output,'trans.out'); reset(input); rewrite(output); readln(n,k,m); for i:=1 to m do for j:=1 to k do read(a[i,j]); for i:=2 to n do f[i]:=maxlongint; f[1]:=1; repeat x:=0; for i:=1 to m do begin s:=maxlongint; for j:=1 to k do if f[a[i,j]]<s then s:=f[a[i,j]]; if s<>maxlongint then begin for j:=1 to k do if f[a[i,j]]>s+1 then begin f[a[i,j]]:=s+1; inc(x); end; end; end; until x=0; if f[n]=maxlongint then writeln(-1) else writeln(f[n]); close(input); close(output);end.
阅读全文
1 0
- 【普组模拟赛】马语翻译
- 有道词典Python模拟翻译
- 马语翻译
- 【普组模拟赛】马农
- 使用适配器模式模拟篮球队翻译 C++
- java api模拟登录有道翻译
- 【普组模拟赛】战马列队
- 图论——马语翻译
- 【普及组模拟赛】Note
- 2017模拟赛-本科组
- 模拟赛
- 模拟赛~~
- 2014美赛翻译
- Shape组简介(翻译)
- 翻译
- 翻译
- 翻译
- 翻译
- Django 导入静态文件js\css
- 最短路径算法
- Sublime Text 3 快捷键汇总
- Arbitrage (floyed算法)
- 算法系列——Binary Tree Level Order Traversal II
- 【普组模拟赛】马语翻译
- springcloud初学者-mongoRepository
- 华为终端CEO余承东:华为正在研发人工智能处理器
- Qt 解决界面切换时的闪烁问题
- 系统恢复
- UVa 247 Calling Circles 经典floyd传递闭包
- ora-00923:未找到要求的form关键字
- 实现启动动画的一种方法
- webpack生成html文件,用于后端渲染的研究