UVA-804 模拟
将每个translation的输入和输出place全部记录下来,模拟即可,当所有translation都不能工作时,就说明dead了。
AC代码:
#include<cstdio>
#include<vector>
using namespace std;const int maxn = 100 + 5;struct node{vector<int> in, out;
}tran[maxn];int p[maxn]; //the number of tokens in all placesint main(){int pn, tn, nf, kase = 1;while(scanf("%d", &pn) == 1 && pn){for(int i = 1; i <= pn; ++i){scanf("%d", &p[i]);}scanf("%d", &tn);for(int i = 1; i <= tn; ++i){int x;while(scanf("%d", &x) == 1 && x){if(x < 0) tran[i].in.push_back(-x);else tran[i].out.push_back(x);}}scanf("%d",&nf);bool dead = 0;int h;for(h = 0; h < nf; ++h){int cnt = 0;for(int i = 1; i <= tn; ++i){bool flag = 1;vector<int> &in = tran[i].in, &out = tran[i].out;for(int j = 0; j < in.size(); ++j){if(p[in[j]] == 0) {flag = 0;while(j) p[in[--j]]++; //break;}else p[in[j]]--;}if(!flag) ++cnt;else {for(int k = 0; k < out.size(); ++k) p[out[k]]++;break;}}if(cnt == tn) {dead = 1;break;}}if(dead) printf("Case %d: dead after %d transitions\n", kase++, h);else printf("Case %d: still live after %d transitions\n", kase++, nf);printf("Places with tokens:");for(int i = 1; i <= pn ; ++i){if(p[i]) printf(" %d (%d)", i, p[i]);}printf("\n\n");for(int i = 1; i <= tn ; ++i) {tran[i].in.clear();tran[i].out.clear();}}return 0;
}
如有不当之处欢迎指出!
转载于:https://www.cnblogs.com/flyawayl/p/8305466.html
UVA-804 模拟相关推荐
- 【习题 6-7 UVA - 804】Petri Net Simulation
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟就好 [代码] /* 1.Shoud it use long long ? 2.Have you ever test sever ...
- UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum
此题很容易想到会出现环,那么就可以想到用map来判重,但是此题还有一种更加优越的所需空间复杂度为o(1)的算法 . #include<cstdio> #include<iostrea ...
- UVa 400 模拟vector
背景:多久没有一次ac过了,要提升一次ac的几率啊!这对比赛是很重要的. 思路:这个题主要是更加熟悉了下vector,然后就是一些格式的问题,构造即可.主要感受还是一定要把思路想好再写题! #incl ...
- Extraordinarily Tired Students, UVA - 12108(模拟)
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int top ...
- UVA804 Petri网模拟 Petri Net Simulation
知识点:模拟 这道题就是个语文题,和数据结构算法啥的都不占边,暴力模拟就行了,而且还是感觉刘汝佳的翻译不是很明白,我是上网上搜了题意,然后直接以变迁作为下标来模拟就行了, 题目翻译:UVA 804 P ...
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟
题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求 ...
- UVA 1156 - Pixel Shuffle(模拟+置换)
UVA 1156 - Pixel Shuffle 题目链接 题意:依据题目中的变换方式,给定一串变换方式,问须要运行几次才干回复原图像 思路:这题恶心的一比,先模拟求出一次变换后的相应的矩阵,然后对该 ...
- UVA - 1198 POJ - 1612 The Geodetic Set Problem (floyd+set+模拟)
题目链接:http://poj.org/problem?id=1612点击打开链接 The Geodetic Set Problem Time Limit: 1000MS Memory Limit ...
最新文章
- python装饰器作用-Python 装饰器的作用
- MIT自然语言处理第三讲:概率语言模型
- OO_Unit2_多线程电梯
- Java substring() 方法
- selenium-05-常见问题
- 如何在Go中使用切片容量和长度
- 随想录(rtos和一般os的区别)
- 通过文件锁 Lockfile/flock 让脚本单实例运行
- 阐述沙盒游戏的历史和理论
- 加油站收银系统 Java_加油站也能用收银系统吗?
- pdf怎么移除权限口令,忘记pdf密码如何找回?
- 自制ArduinoUno R3开发板,烧写bootloader
- WEB前端缓存解决方案
- JS中promise是什么?
- 爬虫需谨慎,你不知道的爬虫与反爬虫套路!
- Mac笔记本外接显示器竖屏设置
- 选择香港虚拟主机需要注意的,如何选购优质的虚拟主机
- 【Kay】Java判断正数和负数个数
- ogr2ogr导入导出数据。
- mavens使用阿里云国内私服下载
热门文章
- day36 03-Hibernate检索方式:排序、参数绑定、投影查询
- 5 Handler与子线程
- 36个引人注目JQuery导航菜单
- c 函数多次声明_【C语言】- static和extern关键字 - 对函数的作用!
- 计算机科学速成视频35,计算机科学速成课30:万维网【视频】
- 成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程
- 技术解密|阿里云多媒体 AI 团队是凭借什么拿下 CVPR2021 5冠1亚的?
- 阿里技术大牛最爱的“闲书”,你看过多少?
- 马云启动“NASA”计划 为未来20年愿景研发核心科技
- 《糖豆人:终极淘汰赛》:如何打造最难关卡「水涨爬高」