哈尔滨理工大学第六届程序设计团队 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< ...
随机推荐
- LINUX通过PXE自动部署系统
原理介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的 ...
- TCP/IP(三)数据链路层~2
一.局域网 1.1.局域网和以太网的区别和联系 局域网:前面已经介绍了,其实就是学校里面.各个大的公司里,自己组件的一个小型网络,这种就属于局域网. 以太网:以太网(Ethernet)指的是由Xero ...
- C++中const用于函数重载
C++中const用于函数重载 常成员函数和非常成员函数之间的重载 首先先回忆一下常成员函数 声明:<类型标志符>函数名(参数表)const: 说明: (1)const是函数类型的一部分, ...
- 使用paramiko远程执行
写部署脚本时,难免涉及到一些远程执行命令或者传输文件. 之前一直使用sh库,调用sh.ssh远程执行一些命令,sh.scp传输文件,但是实际使用中还是比较麻烦的,光是模拟用户登陆这一点,还需要单独定义 ...
- poj1014二进制优化多重背包
Dividing Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 53029 Accepted: 13506 Descri ...
- 集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序
在2015年8月份的时候,决心学习图像算法. 几乎把当时市面上的图像算法相关书籍都看了一遍, 资金有限,采取淘宝买二手书,长期驻留深圳图书馆的做法, 进度总是很慢,学习算法不得其法. 虽然把手上所有书 ...
- 在Ubuntu终端彻底删除软件
在Ubuntu终端彻底删除软件 1.删除软件 方法一.如果你知道要删除软件的具体名称,可以使用 sudo apt-get remove --purge 软件名称 sudo apt-get autore ...
- R语言基础语法
学习一门新的语言,率先学习输出hello world.我们就从这里开始学习. 首先打开RStudio这个IDE,然后在左边输入: > mystr <- "hello world& ...
- (@WhiteTaken)解决Unity5.x下UnityVS2013不能使用的问题
终于解决了这一困扰我很久的问题. 下面来介绍一下我遇到的问题: 前段时间,重新做了系统,并且安装了Unity5.6版本,VS2013,UnityVS 2013.msi,Visual Studio 20 ...
- Sql Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
示例表 tb 数据如下 id value ----- 1 aa 1 bb 2 aaa 2 bbb 2 ccc SELECT id, [val] = ( SELECT [value] + ',' FRO ...