哈尔滨理工大学第六届程序设计团队 I-Team
- /*
- 以前做过一个插队的题,这个类似从后往前操作
- */
- #include <iostream>
- #include <stdio.h>
- #include <algorithm>
- #include <string.h>
- #include <vector>
- #define N 600000
- using namespace std;
- struct node
- {
- int x,y,z;
- //每一个操作,z表示这个操作是不是有效的
- node(){}
- node(int a,int b,int c)
- {
- x=a;
- y=b;
- z=c;
- }
- };
- vector<node>v;
- vector<int>w;
- int t,n,m;
- int x,y,z;
- int done[N];//表示当前数字操作过没有
- int a[N];//表示那些人被添加进来了
- void init()
- {
- memset(a,,sizeof a);
- v.clear();
- v.push_back(node(,,));
- w.clear();
- memset(done,,sizeof done);
- }
- int main()
- {
- //freopen("C:\\Users\\acer\\Desktop\\in.txt","r",stdin);
- scanf("%d",&t);
- //cout<<t<<endl;
- while(t--)
- {
- init();
- scanf("%d%d",&n,&m);
- //cout<<n<<" "<<m<<endl;
- for(int i=;i<m;i++)
- {
- scanf("%d%d",&x,&y);
- v.push_back(node(x,y,));
- }
- for(int i=v.size()-;i>=;i--)
- {
- if(v[i].z)//这个操作可以做
- {
- if(v[i].x==)
- v[v[i].y].z=;
- else if(v[i].x==)
- {
- if(done[v[i].y]==)
- {
- a[v[i].y]=;
- done[v[i].y]=;
- }
- }
- else if(v[i].x==)
- {
- if(done[v[i].y]==)
- {
- a[v[i].y]=;
- done[v[i].y]=;
- }
- }
- }
- }
- for(int i=;i<=n;i++)
- {
- //cout<<a[i]<<" ";
- if(a[i]==)
- {
- w.push_back(i);
- //cout<<i<<" ";
- }
- }
- //cout<<endl;
- printf("%d\n",w.size());
- for(int i=;i<w.size();i++)
- printf("%d ",w[i]);
- printf("\n");
- }
- return ;
- }
- /*
- 急需一个能写模拟的队友,在线等挺急的
- 莫名地RE了,所有能考虑的地方都考虑了
- */
- /*
- 先不要进行操作,先将所有的操作跑一边看看哪些1,2操作是有效的,哪些是无效的
- */
- #include <iostream>
- #include <stdio.h>
- #include <algorithm>
- #include <string.h>
- #include <vector>
- #define N 600000
- using namespace std;
- struct node
- {
- int x,y,z;
- //每一个操作,z表示这个操作是不是有效的
- node(){}
- node(int a,int b,int c)
- {
- x=a;
- y=b;
- z=c;
- }
- };
- vector<node>v;
- vector<int>w;
- int t,n,m;
- int x,y,z;
- int a[N];//表示那些人被添加进来了
- void recall(int x)//x就是要撤销的x号操作
- {
- if(x<||x>v.size())
- return;
- //cout<<x<<endl;
- if(v[x].x!=)//如果要撤销的是1,2号操作的话
- {
- v[x].z^=;//将这个操作撤销
- //如果已经被撤销了的话就不用管了
- return ;
- }
- else
- {
- v[x].z^=;//将这个操作撤销
- recall(v[x].y);//继续递归下去撤销下一个操作
- //如果已经被撤销了的话就不用管了
- }
- }
- void init()
- {
- memset(a,,sizeof a);
- v.clear();
- v.push_back(node(,,));
- w.clear();
- }
- int main()
- {
- //freopen("C:\\Users\\acer\\Desktop\\in.txt","r",stdin);
- scanf("%d",&t);
- //cout<<t<<endl;
- while(t--)
- {
- init();
- scanf("%d%d",&n,&m);
- //cout<<n<<" "<<m<<endl;
- for(int i=;i<m;i++)
- {
- scanf("%d%d",&x,&y);
- //cout<<x<<" "<<y<<endl;
- if(x==)
- {
- v.push_back(node(x,y,));
- }
- else if(x==)
- {
- v.push_back(node(x,y,));
- }
- else if(x==)
- {
- v.push_back(node(x,y,));
- //cout<<"**********"<<endl;
- recall(y);
- // cout<<"**********"<<endl;
- }
- }
- for(int i=;i<v.size();i++)
- {
- if(v[i].x!=)//只有1,2号操作可以
- {
- if(v[i].z)//这个操作有效的
- {
- //cout<<v[i].x<<" "<<v[i].y<<endl;
- if(v[i].x==)
- {
- a[v[i].y]=;
- }
- else if(v[i].x==)
- {
- a[v[i].y]=;
- }
- }
- }
- }
- for(int i=;i<=n;i++)
- {
- //cout<<a[i]<<" ";
- if(a[i]==)
- {
- w.push_back(i);
- //cout<<i<<" ";
- }
- }
- //cout<<endl;
- printf("%d\n",w.size());
- for(int i=;i<w.size();i++)
- printf("%d ",w[i]);
- printf("\n");
- }
- return ;
- }
哈尔滨理工大学第六届程序设计团队 I-Team的更多相关文章
- 哈尔滨理工大学第六届程序设计团队 H-Permutation
/* 数学是硬伤......推了半小时推出来一个错误的公式 */ #include <iostream> #include <stdio.h> #include <alg ...
- 哈尔滨理工大学第六届程序设计团队 E-Mod
/* 成功水过,哈哈哈,可能数据水吧 */ #include <stdio.h> #include <algorithm> #include <string.h> ...
- 哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)
哈尔滨理工大学第七届程序设计竞赛初赛https://www.nowcoder.com/acm/contest/28#question D题wa了半天....(真真正正的半天) 其实D题本来就是一个简单 ...
- 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)I - B-旅行
题目描述 小z放假了,准备到RRR城市旅行,其中这个城市有N个旅游景点.小z时间有限,只能在三个旅行景点进行游玩.小明租了辆车,司机很善良,说咱不计路程,只要你一次性缴费足够,我就带你走遍RRR城. ...
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)I - 没有名字
题目描述 tabris实在是太菜了,没打败恶龙,在绿岛也只捡到一块生铁回去了,为了不在继续拉低acimo星球的平均水平逃离地球,来到了Sabi星球. 在这里tabris发现了一种神奇的生物,这种生物不 ...
- 哈尔滨理工大学第七届程序设计竞赛(G.Great Atm)
Description An old story said the evil dragon wasn't evil at all, only bewitched, and now that the r ...
- 北京师范大学第十六届程序设计竞赛决赛 I 如何办好比赛
链接:https://www.nowcoder.com/acm/contest/117/I来源:牛客网 如何办好比赛 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他 ...
- 哈理工软件学院"兆方美迪"杯第六届程序设计大赛【高年级组】--决赛 题解
比赛链接:http://acm-software.hrbust.edu.cn/contest.php?cid=1082 A.好SB啊真是,还以为lis-数有多少个数不一样. #include < ...
- H-数学考试 想法题+最新头文件 2018年长沙理工大学第十三届程序设计竞赛
https://www.nowcoder.com/acm/contest/96/H 坑点:INF开太小了... #define _CRT_SECURE_NO_WARNINGS #include< ...
随机推荐
- 使用 TUN 设备实现一个简单的 UDP 代理隧道
若要实现在 Linux 下的代理程序,方法有很多,比如看着 RFC 1928 来实现一个 socks5 代理并自行设置程序经过 socks5 代理等方式,下文是使用 Linux 提供的 tun/tap ...
- Java 基础语法
一.关键字 定义:被 Java 赋予特殊含义的单词. 特点:基本上都是英文小写. 用于定义数据类型的关键字 基本数据类型 整数型(默认为 int) byte(8 位,1 字节,默认值是 0,最大存储数 ...
- Linux入门之常用命令(4)vi编辑器
vi分为三种模式 一般模式:删除字符.删除整行.复制粘贴等操作 编辑模式:i o a r进入 输入字符 Esc退出 命令行模式::或/ 将光标移动到最末行 搜寻数据 读取或替换 退出vi 显示行号 ...
- 51 nod 1624 取余最长路 思路:前缀和 + STL(set)二分查找
题目: 写这题花了我一上午时间. 下面是本人(zhangjiuding)的思考过程: 首先想到的是三行,每一行一定要走到. 大概是这样一张图 每一行长度最少为1.即第一行(i -1) >= 1, ...
- 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)
Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 v ...
- .NET十年回顾
一. 引子 从我还是编程菜鸟时起,.NET就从来没让我失望过.总是惊喜不断. 当年我第一个项目是做个进销存.用的Winform.当时我是机电工程师.编程只是业余心血来潮而已. .NET的低门槛.V ...
- Select的option事件问题
一开始看你们会觉得没问题,我也就是觉得没问题所以才找不到错误所在. 问题出在option本身是没有事件的说法的,只能在select里添加事件,再获取option的属性值 这是我的写法 select设置 ...
- mysql error 1290 hy000:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen' 解决方案
如果在执行授权命令的时候报错 mysql> grant all privileges on *.* to root@"; ERROR (HY000): The MySQL server ...
- jQuery实现web页面固定列表搜索
1.需求分析:现在有一个数据展示列表页面,列表内容固定,使用jQuery在固定的列表中实现搜索功能. 2.核心代码: <!-- 添加jquery库 --> <script type= ...
- ubuntu中安装ftp服务器
1. 实验环境 ubuntu14.04 2.vsftpd介绍 vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的FTP服务器程序,安全性是它的 ...