题目名称 | 1495. [UVa 10828] 随机程序 |
---|---|
输入输出 | backtoKR.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cstdio 于2014-01-19加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:21, 提交:49, 通过率:42.86% | ||||
zys | 100 | 0.477 s | 0.48 MiB | C++ |
神利·代目 | 100 | 0.483 s | 0.41 MiB | C++ |
/k | 100 | 0.490 s | 8.78 MiB | C++ |
神利·代目 | 100 | 0.494 s | 0.46 MiB | C++ |
mikumikumi | 100 | 0.573 s | 0.41 MiB | C++ |
L_in | 100 | 0.574 s | 0.50 MiB | C++ |
_Itachi | 100 | 0.579 s | 0.46 MiB | C++ |
_Itachi | 100 | 0.581 s | 0.41 MiB | C++ |
_Itachi | 100 | 0.582 s | 0.46 MiB | C++ |
MistyEye | 100 | 0.613 s | 0.57 MiB | C++ |
关于 随机程序 的近10条评论(全部评论) | ||||
---|---|---|---|---|
劲啊
| ||||
这个题需要注意的地方还蛮多的,
比如边数所有的测试点都>n, 比如若这个点与1不连通则概率也为0, 比如-0.00001输出若直接输出的话为-0.000,但应该是0.000 比如用Notepad++写代码的话注释会乱码。。
_Itachi
2016-12-19 12:07
4楼
| ||||
调了N遍才过啊!55555.......难死了
| ||||
这道题的读入方式真奇葩0.0
清羽
2015-04-23 11:43
2楼
| ||||
由于是个图……所以我随机出来的数据有点……额……奇怪……
|
你一定听说过Kernighan和Ritchie,他们是《C程序设计语言》的作者。当在C语言中编程时,我们使用不同的控制语句和循环。例如,if-then-else(原文如此——译者注),for,do-while等等。考虑如下伪代码:
//execution starts here do { U; V; } while(condition); W;
在上述代码中,每个分支都有一定的执行条件。这一代码可以用流程图表示如下:
对每个节点,令其转到任意后继的概率相等。因此,在上面的代码中,U执行的期望次数是2.在这个问题中,给出这样的一个流程图,请你找出每个节点的期望执行次数。
输入包含至多100组数据。
每组数据的第1行是一个正整数n(1<=n<=100)。n是流程图中的节点个数。节点被从1到n编号,并且总是从1开始执行。
下面有若干行,每行2个正整数:start和end,意味着执行完start后可以转到end。以2个0结束。
下面一行有一个正整数q(1<=q<=100),描述询问个数。
接下来的q行,每行一个正整数x,意味着询问节点x的期望执行次数。
输入文件以n=0结束。
对第i组数据:
先输出一行"Case #i:"。
接下来输出q行,每行1个实数,表示该查询对应的期望次数。保留三位小数。某个节点有可能被永远执行(例如,一个无穷的for循环)。对于这种情况,输出"infinity"。
具体格式见样例。
3 1 2 2 3 2 1 0 0 3 1 2 3 3 1 2 2 3 3 1 0 0 3 3 2 1 0
Case #1: 2.000 2.000 1.000 Case #2: infinity infinity infinity
使用计算机中的“保留3位小数”指令。假设你的计算机能正确进行舍入。
UVa10828 Back to Kernighan-Ritchie
刘汝佳,《算法竞赛入门经典训练指南》表2-12
Problem setter: Mohammad Sajjad Hossain
Special Thanks: Shahriar Manzoor