哈尔滨理工大学第六届程序设计团队 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< ...
随机推荐
- oracle sql 树操作
语法:select-start with-connect by-prior 主要有两点 1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描.可能对应一个或 ...
- Java源码学习:HashMap实现原理
AbstractMap HashMap继承制AbstractMap,很多通用的方法,比如size().isEmpty(),都已经在这里实现了.来看一个比较简单的方法,get方法: public V g ...
- 【HIVE】sql语句转换成mapreduce
1.hive是什么? 2.MapReduce框架实现SQL基本操作的原理是什么? 3.Hive怎样实现SQL的词法和语法解析? 连接:http://www.aboutyun.com/thread-20 ...
- NOIP2017SummerTraining0706
个人感受:这套题也依旧在划水,和wqh在一起,然后也没怎么好好想,第一题开始时打了个思维很好的方法,但是事完全错误的:然后就开始第二题,然后第二题枚举20分,然后看答案多了25分,就拿了 45分:第三 ...
- 三分钟浅谈TT猫的前端优化
首先看一张访问TT猫首页的截图: 测试环境为谷歌浏览器,暂且不讨论其它浏览器,截图下方我们可以观察到以下参数: DOMContentLoaded:1.42s | Load:2.31s 以上参数是在CT ...
- mysql慢查询分析工具 mysqlsla 安装
概述 mysqlsla 是一款很不错的mysql慢查询日志分析工具,而且简单易用.mysqlsla 是用perl编写的脚本,运行需要perl-DBI和per-DBD-Mysql两模块的支持.mysql ...
- MVC中@RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、Html.RenderAction的作用和区别
1.@RenderBody() 作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签 ...
- c# 接口实用
学习接口,还是记下来吧,不然以后忘记,这个东西也不是常用. interface Interface1 { } 接口中不能有字段, 只能声明方法.
- sqlite3基本相关使用
闲来无事,复习和总结了一下之前学习到的关于sqlite3数据库的相关知识: [1] sqlite3的安装:1.离线安装:sudo dpkg -i *.deb2.在线安装:sudo apt-get in ...
- git subtree pull 错误 Working tree has modifications
git subtree 是不错的东西,用于 git 管理子项目. 本文记录我遇到问题和翻译网上的答案. 当我开始 pull 的时候,使用下面的代码 git subtree pull --prefix= ...