1106: [POI2007]立方体大作战tet
Description
一个叫做立方体大作战的游戏风靡整个Byteotia。这个游戏的规则是相当复杂的,所以我们只介绍他的简单规
则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置。这些元素拥有n个不同的编号,每个编号正好有两个
元素。玩家每次可以交换两个相邻的元素。如果在交换之后,两个相邻的元素编号相同,则将他们都从栈中移除,
所有在他们上面的元素都会掉落下来并且可以导致连锁反应。玩家的目标是用最少的步数将方块全部消除。
Input
第一行包含一个正整数n(1<=n<=50000)。接下来2n行每行一个数ai,从上到下描述整个栈,保证每个数出现且
仅只出现两次(1<=ai<=n)。初始时,没有两个相同元素相邻。并且保证所有数据都能在1000000步以内出解。
Output
第一行包含一个数m,表示最少的步数。
Sample Input
5
5
2
3
1
4
1
4
3
5
2
样例输入2
3
1
2
3
1
2
3
Sample Output
2
样例输出2
3
HINT
1 #include<iostream> 2 #include<cstdlib> 3 #include<cmath> 4 #include<cstring> 5 #include<cstdio> 6 #include<algorithm> 7 #include<string> 8 #include<map> 9 #include<queue> 10 #include<vector> 11 #include<set> 12 #define inf 1000000000 13 #define maxn 100000+5 14 #define maxm 10000+5 15 #define eps 1e-10 16 #define ll long long 17 #define for0(i,n) for(int i=0;i<=(n);i++) 18 #define for1(i,n) for(int i=1;i<=(n);i++) 19 #define for2(i,x,y) for(int i=(x);i<=(y);i++) 20 #define for3(i,x,y) for(int i=(x);i>=(y);i--) 21 #define for4(i,x) for(int i=head[x],y=e[i].go;i;i=e[i].next,y=e[i].go) 22 using namespace std; 23 int t[maxn],s[maxn],top,ans; 24 int read(){ 25 int x=0,f=1;char ch=getchar(); 26 while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} 27 while(ch>='0'&&ch<='9'){x=10*x+ch-'0';ch=getchar();} 28 return x*f; 29 } 30 int main(){ 31 //freopen("input.txt","r",stdin); 32 //freopen("output.txt","w",stdout); 33 int n=read(); 34 for1(i,2*n){ 35 int x=read(); 36 if(t[x]){ 37 int j; 38 for(j=top;j;j--) 39 if(s[j]==x)break; 40 ans+=top-j; 41 while(j<top){ 42 s[j]=s[j+1]; 43 j++; 44 } 45 top--; 46 } 47 else{ 48 t[x]=1; 49 s[++top]=x; 50 } 51 } 52 printf("%d",ans); 53 return 0; 54 }
View Code
转载于:https://www.cnblogs.com/htwx/articles/5541108.html
1106: [POI2007]立方体大作战tet相关推荐
- bzoj 1106: [POI2007]立方体大作战tet(贪心+树状数组)
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MB Submit: 785 Solved: 574 [Submit][ ...
- BZOJ 1106: [POI2007]立方体大作战tet
Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规 则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n ...
- bzoj1106[POI2007]立方体大作战tet*
bzoj1106[POI2007]立方体大作战tet 题意: 给定玩家一个有2n个元素的栈,这些元素拥有n个不同的编号,每个编号正好有两个元素.玩家每次可以交换两个相邻的元素.如果在交换之后,两个相邻 ...
- [POI2007]立方体大作战tet
Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规 则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n ...
- [BZOJ1106/POI2007]Tet立方体大作战
Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个 ...
- 【POI 2007】Tetris Attack 正方体大作战(tet)
http://www.zybbs.org/JudgeOnline/problem.php?id=1106 http://main.edu.pl/en/archive/oi/14/tet 题目大意:诶呀 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- SLAM第12讲 建图实践部分
1 实践:单目稠密重建 1.1 我们需要下载示例程序所需要的数据集http://rpg.ifi.uzh.ch/datasets/remode_test_data.zip.它提供了一架无人机采集到的单目 ...
- 论文翻译 | 多鱼眼相机的全景SLAM
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 提出了一种基于特征的全景图像序列同时定位和建图系统,该系统是在宽基线移动建图系统中从多鱼眼相 ...
最新文章
- C语言求3x3数组对角线元素之和
- Hadoop 资源列表
- 初学Java Web(2)——搭建Java Web开发环境
- gitlab 目录tag_【环境搭建】gitlab-ci(持续集成)
- 发送消息时,设定TTL
- 洛谷2296 寻找道路
- 分页查询的SQL语句
- 一元稀疏多项式加法运算
- Zotero文献管理软件使用指南——入门篇
- VS2010 0xC000041D:用户回调期间遇到未经处理的异常
- python的encode()和decode()的用法及实例
- lighttpd和php关系,Lighttpd是什么
- Laravel Guzzle封装
- 线性代数中满足乘法交换律的运算-行列式与迹
- Air202掉坑日记(2)——连接阿里云成功后自动掉线(AT版本)
- 大麦路由器dw22d不拆机刷breed和openwrt
- LaTex - PPT 模板-1 (亲测可用)
- tddl+diamond(一)
- 基于FME实现等高线的计曲线连接工具,快速连接计曲线在计曲线注记点断开处的缺口,计曲线批量连接,等高线批量连接
- 脚本循环ping所有网段