POJ-1680(递归模拟)
来源:互联网 发布:从unix到linux 乱码 编辑:程序博客网 时间:2024/05/18 00:45
题目:http://poj.org/problem?id=1680
分析:父进程wait会等到子进程执行完成之后才继续下一步,每个进程都执行相同的代码,刚好和递归函数调用的方式一致。
需要注意的是【ProcessID==0】每个子进程仅打印一次,对应到递归调用中,就是进入函数时打印一次。
由于题目只要求获得打印的某一行,这里可以优化递归的退出条件,不需要执行到底:发现当前打印的是目标行就退出整个递归。
#include <cstdio>const int kRoot = 1000;int N, K, P;bool dfs(int i, int a, int p){if(p != kRoot){if(--K == 0){printf("Process ID=%d, A=%d\n", p, a);return true;}}while(i < N){if(--K == 0){printf("Loop %d: Process ID=%d\n", i, p);return true;}a += 7;if(dfs(++i, a, ++P)) return true;}return false;}int main(){int t;for(scanf("%d", &t); t--; ){scanf("%d%d", &N, &K);dfs(0, 0, P = kRoot);}return 0;}
0 0
- POJ-1680(递归模拟)
- POJ 3295 递归模拟
- poj 1033 Defragment 模拟+递归
- poj 1472 Instant Complexity (递归模拟技巧)
- POJ 1573 Robot Motion 递归模拟
- POJ 3295 - 位运算 + 模拟 +递归
- POJ 1979(递归)
- POJ 3600 Subimage Recognition【递归DFS + 模拟枚举】
- poj 3325(模拟)
- POJ 1008(模拟)
- poj 2632 (模拟)
- POJ 1068(模拟)
- POJ 3087(模拟)
- poj 3087 (模拟)
- POJ 1008 (模拟)
- poj 1095 递归(Catalan)
- POJ 2083 Fractal(递归)
- #1039 : 字符消除(模拟+暴力+递归)
- 调用免费的web service(天气预报,手机号归属地)案例(四)
- 碎碎念
- java8中新增的time类的常用类的基本用法
- Theano 中文文档 0.9 - 5.2 Mac OS安装说明
- 有限状态机在C语言编程中的各种应用
- POJ-1680(递归模拟)
- java excel设置row 里面的宽度自适应
- 清除canvas的任何图形
- [mmc subsystem] mmc core(第三章)——bus模块说明
- Theano 中文文档 0.9 - 5.3 Windows安装说明
- python爬虫(一)
- 4.CSS图像绘制之:字渐变按钮
- Windows PE 第十章 加载配置信息
- Theano 中文文档 0.9 - 5.4 CentOS 6安装说明