知识点:模拟

这道题就是个语文题,和数据结构算法啥的都不占边,暴力模拟就行了,而且还是感觉刘汝佳的翻译不是很明白,我是上网上搜了题意,然后直接以变迁作为下标来模拟就行了,

题目翻译:UVA 804 Petri Net Simulation(算法竞赛入门经典,模拟)

#include <bits/stdc++.h>#define fi first
#define se second
#define pb push_back
#define mk make_pair
#define sz(x) ((int) (x).size())
#define all(x) (x).begin(), (x).end()using namespace std;typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;const int N = 105;int main() {int np;int num = 1;while (cin >> np && np) {int rec[N];for (int i = 1; i <= np; i++) cin >> rec[i];int nt;cin >> nt;vector<pa> pre[N];vector<pa> nxt[N];for (int i = 1; i <= nt; i++) {int x;while (cin >> x && x) {int ok = 0;if (x < 0) {for (int j = 0; j < sz(pre[i]); j++) {if (pre[i][j].fi == x * -1) { pre[i][j].se++; ok = 1; }}if (!ok) pre[i].pb(mk(x * -1, 1));} else {for (int j = 0; j < sz(nxt[i]); j++) {if (nxt[i][j].fi == x) { nxt[i][j].se++; ok = 1; }}if (!ok) nxt[i].pb(mk(x, 1));}}}int q;cin >> q;int i;for (i = 1; i <= q; i++) {int ok = 0;for (int j = 1; j <= nt; j++) {int ook = 1;for (int k = 0; k < sz(pre[j]); k++) {if (pre[j][k].se > rec[pre[j][k].fi]) ook = 0;}if (ook) {for (int k = 0; k < sz(pre[j]); k++) rec[pre[j][k].fi] -= pre[j][k].se;for (int k = 0; k < sz(nxt[j]); k++) rec[nxt[j][k].fi] += nxt[j][k].se;ok = 1;break;}}if (!ok) break;}cout << "Case " << num++ << ":";if (i == q + 1) cout << " still live after " << q << " transitions\n";else cout << " dead after " << i - 1 << " transitions\n";cout << "Places with tokens:";for (int i = 1; i <= np; i++) {if (rec[i]) cout << ' ' << i << " (" << rec[i] << ")";}cout << endl << endl;}return 0;
}

UVA804 Petri网模拟 Petri Net Simulation相关推荐

  1. 常用Petri网模拟软件工具简介

    常用Petri网模拟软件工具简介 首先要介绍的的一个非常有名的Petri 网网站--Petri Nets World: http://www.informatik.uni-hamburg.de/TGI ...

  2. 很久以前某位大仙对petri网的总结

    2006年03月14日 计算模型的统一分析 计算模型的统一分析 人类所有的计算模型都包括如下四个要素:          1)输入集合或者输入变量(I):          2)输出集合或者输出变量( ...

  3. 基于 Petri 网的软件过程支撑环境设计

    基于 Petri 网的软件过程支撑环境设计 基于 Petri 网的软件过程支撑环境设计 摘要 第 1 章 绪论 1.1 软件过程与过程建模 1.3 软件过程支撑环境现状 1.3 本课题的研究内容及意义 ...

  4. 关于Petri网的学习笔记

    讲述我对Petri的学习过程. 着色Petri网(Color Petri Net) 1.使用有颜色的Token(类型) 使用有颜色的Token 可以对Token进行分类,同时对库所也要定义Token的 ...

  5. petri网学习笔记--stochastic petri net分类

    SPN 给P/T网的每个transition关联一个实施速率(firing rate)而得到的模型 GSPN Generalized stochastic petri nets,广义随机Petri网 ...

  6. 如何使用petri网建模工具

    Petri网建模工具是一种建立和分析Petri网模型的软件工具,以下是使用Petri网建模工具的一般步骤: 下载并安装Petri网建模工具,比较常用的Petri网建模工具有PIPE.TAPAAL等,可 ...

  7. 如何使用petri网建模工具pipe4.3.0

    Petri网建模工具PIPE4.3.0是一个用于Petri网建模的软件工具.以下是使用PIPE4.3.0建模的基本步骤: 下载和安装PIPE4.3.0软件,并启动它. 创建一个新的Petri网模型.您 ...

  8. 离散事件动态系统 #Petri网作业 #可达图 #赋时Petri

    离散事件动态系统作业 #Petri网 #可达图 #赋时Petri 本文章由作者独立创作,为研究生某课程作业,仅供参考 首先吐槽一点:CSDN无法使用svg矢量图(人家写markdown都支持) 1. ...

  9. Petri网描述语言

    PNML--Petri Net Markup Language PNML是基于XML的Petri网表示方法.为了支持不同类型的petri网,其中允许定义新的petri网类型.由于具有这种灵活性,PNM ...

最新文章

  1. 计算机用户名更改不了,简单几步解决win10电脑用户名改不了的问题
  2. boost源码剖析之:泛型指针类any之海纳百川(rev#2)
  3. Angular项目中,基于esriLoader+iframe实现不同页面调用3.x与4.x ArcGIS JS API
  4. centos7 apache2.4 测试
  5. 用Gson实现json与对象、list集合之间的相互转化
  6. SOAP协议 访问Webservice
  7. apache mesos_在Twitter上使用Apache Mesos和Apache Aurora进行资源调度和任务启动
  8. Redis 管道技术——Pipeline
  9. python步态识别算法_译 | GaitSet:将步态作为序列的交叉视角步态识别(一)
  10. 上传文件到服务器端后进一步推送到sftp服务器
  11. Ubuntu-创建wifi热点-Android能连接(2)
  12. python所有软件-一款Python黑客打造的勒索软件,让所有国产杀毒软件升起无力感!...
  13. 怎样快速的学习微信小程序
  14. 微信登录界面安卓代码_安卓Activity劫持与反劫持
  15. active控件和java脚本_Active控件问题小结(附解决办法)
  16. Calendar获取上个月第一天和最后一天,上周第一天和最后一天
  17. Reentrantlock和背后金主AQS —————— 开开开山怪
  18. Ros同一局域网下多机通信
  19. 2022年行研行业研究报告
  20. 关于Mac系统接完投影仪拔下来以后有黑框的问题解决办法

热门文章

  1. 全国大学省英语竞赛【A类】剖析
  2. web安全攻击方法流量分析
  3. 将列表中所有的单词首字母转换成大写 python
  4. ReactNative组件的borderColor和borderRadius属性踩坑记录
  5. CSS3新增样式-borderRadius的使用
  6. 什么是HTML 实体?
  7. C#_C#控件及常用设计整理
  8. js和jQuery调用搜狐IP地址查询接口
  9. TIDB架构自我总结
  10. 【ClickHouse】什么是ClickHouse?CK入门