哈尔滨理工大学第六届程序设计团队 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< ...
随机推荐
- 回文词_KEY
回文词 (palin.pas/c/cpp) [问题描述] 回文词是一种对称的字符串--也就是说,一个回文词,从左到右读和从右到左读得的结果是一样的.任意给定一个字符串,通过插入若干字符,都可以变成一个 ...
- spring 面向切面(AOP)
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. AOP与OOP是面向不同领域的两种设计思想. ...
- Java 网络 IO 模型
在进入主题之前先看个 Java 网络编程的一个简单例子:代码很简单,客户端和服务端进行通信,对于客户端的每次输入,服务端回复 get.注意,服务端可以同时允许多个客户端连接. 服务端端代码: // 创 ...
- AngularJS -- Bootstrap(启动器)
点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Bootstrap(初始化) 这章介绍了Angular的初始化过程,以及如何在必要的时候 ...
- S2_OOP第一章
面向对象设计的过程就是抽象的过程 步骤: 第一步:发现类 第二步:发现类的属性 第三步:发现类的方法 抽象是遵循的原则 属性和方法的设置是为了解决业务问题 关注主要属性和方法 如果没有必要,不增加额外 ...
- Ubuntu16.04 install OpenJDK8
1.按Ctrl + Alt + T打开终端.打开后,运行下面的命令来添加PPA:sudo add-apt-repository ppa:openjdk-r/ppa2.之后,更新系统包缓存并安装Open ...
- 我的第一个python web开发框架(6)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- bootstrap 轮播模板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java 对象复制
Java 对象的一共有 3 种复制对象的方式. 1.直接赋值 (引用复制 ),此种复制方式比较常用. 诸如 A a = b ; a 是直接复制了b的引用 ,也就是说它俩指向的是同一个对象. 此时 ...
- 使用Xshell5连接虚拟机VMware中安装的CentOS7系统
使用Xshell5连接VMware中安装的CentOS7系统 准备材料 Xshell 下载地址 VMware Workstation 12 Pro 下载地址 CentOS 7 64位系统 下载地址 安 ...