Dr.Kong的艺术品
题目
Dr.Kong设计了一件艺术品,该艺术品由N个构件堆叠而成,N个构件从高到低按层编号依次为1,2,……,N。艺术品展出后,引起了强烈的反映。Dr.Kong观察到,人们尤其对作品的高端部分评价甚多。
狂热的Dr.Kong一激动,对组成该艺术品的N个构件重新组合,比如:把第6层到第12层的构件搬下来,想一想,然后整体放到剩下构件的第7层下面;过一会儿,又把第2层到第9层的构件搬下来,整体放到剩下构件的第1层下面等等。于是,Dr.Kong在进行了连续若干次“搬来搬去”后,还是这N个构件,又诞生了一件新的艺术品。
编程:请输出新的艺术品最高十层构件的编号。
【标准输入】
第一行: N K 表示构件的总数和“搬来搬去”的总次数
第2~K+1行:A B C 表示要搬动的构件(即从第A层到第B层)整个放在第C层下面;
如果C等于0,则要搬动的构件将放到最高层。
【标准输出】
由十行组成,分别为组成新艺术品的第一层到第十层构件的编号。
【约束条件】
(1) 10≤N≤20000 1≤k≤1000
(2) 1≤A≤B≤N, 0≤C≤N-(B-A+1)
【 样 例 】
|
标准输入 |
标准输出 |
|
13 3 6 12 1 2 9 0 10 13 8 |
6 7 8 9 10 11 12 2 3 4 |
|
15 2 4 9 2 10 13 7 |
1 2 4 5 6 7 8 10 11 12 |
|
12 3 6 10 4 3 8 1 7 11 0 |
9 2 10 5 11 1 3 4 6 7 |
解答
本道题可用线性表的链式存储结构来解决,其的解题思想是用尾插法建立一个链表head存储数据,查找a节点之前的那个节点和b节点,将a和b之间的这一段数据用链表L单独存储起来(相当于暂时从此链表中删除),然后从删除L之后的head链表中查找c的节点,之后将链表L整体插入到链表head中,最后输出前十个数据即可。
代码
#include <iostream>
#include <malloc.h>
using namespace std;
typedef struct node{
int data;
struct node* next;
}*LinkList;
int main()
{
int n,k;
int i,j,m;
int a,b,c;
LinkList head,tail,p,q,L,r,s,t;
while(cin>>n>>k)
{
head=(LinkList)malloc(sizeof(node));
tail=(LinkList)malloc(sizeof(node));
head->next=NULL;
tail=head;
for(i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(node));
p->data=i;
if (i==1)
head->next=p;
else
tail->next=p;
tail=p;
}
tail->next=NULL;
for(i=0;i<k;i++)
{
j=1,m=0;
t=L=head;
cin>>a>>b>>c;
while(j<a) //查找a前一个节点
{
L=L->next;
j++;
}
q=L->next;
s=q;
while(j<b) //查找b本身
{
s=s->next;
j++;
}
L->next=s->next;
r=t;
while(m<c) //查找c本身
{
r=r->next;
m++;
}
s->next=r->next;
r->next=q;
}
head=head->next;
for(i=0;i<n&&i<10;i++)
{
cout<<head->data<<endl;
head=head->next;
}
}
return 0;
}
Dr.Kong的艺术品的更多相关文章
- NYOJ---540奇怪的排序
奇怪的排序 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情.惟独对自然数的理解与人类不一 ...
- 探 寻 宝 藏--- DP
题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦 ...
- G.Interference Signal---河南省第八届程序设计大赛(dp)
G.Interference Signal 时间限制: 2 Sec 内存限制: 128 MB提交: 47 解决: 18[提交][状态] 题目描述 Dr.Kong’s laboratory moni ...
- (扩展欧几里德算法)zzuoj 10402: C.机器人
10402: C.机器人 Description Dr. Kong 设计的机器人卡尔非常活泼,既能原地蹦,又能跳远.由于受软硬件设计所限,机器人卡尔只能定点跳远.若机器人站在(X,Y)位置,它可以原地 ...
- nyoj305_表达式求值
表达式求值 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min ...
- ACM 房间安排
房间安排 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 2010年上海世界博览会(Expo2010),是第41届世界博览会.于2010年5月1日至10月31日期间, ...
- 房间安排-nyoj168
描述 2010年上海世界博览会(Expo2010),是第41届世界博览会.于2010年5月1日至10月31日期间,在中国上海市举行.本次世博会也是由中国举办的首届世界博览会.上海世博会以“城市,让生活 ...
- nyoj 712 探 寻 宝 藏--最小费用最大流
问题 D: 探 寻 宝 藏 时间限制: 1 Sec 内存限制: 128 MB 题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有 ...
- nyoj------170网络的可靠性
网络的可靠性 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商.它将提供先进的网络协作技术,展 ...
随机推荐
- C# json object互转工具
public static T Deserializer<T>(string path) { try { System.Xml.XmlDocument xd = new System.Xm ...
- HDFS的联盟Federation
一:概述 1.单个namenode的局限性 namespace的限制 单个namenode所能存储的对象受到JVM中的heap size的限制 namenode的扩张性 不可以水平扩张 隔离性 单个n ...
- JavaScript学习基础部分
JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...
- Excl 的一些用法--如何给很多列赋同一个值
1.用鼠标选定要负责的列(多列) 2.在处填写值 3.Ctrl+Enter
- iOS ASIHTTPRequest 请求https
iOS 终端请求服务端数据时,为了保证数据安全,我们一般会使用https协议加密,而对于iOS的网络编程,我们一般会使用开源框架:ASIHTTPRequest,但是如果使用传统的http方式,即使忽略 ...
- php文件和目录操作函数
文件:打开和关闭:fopen(), fclose()读:readfile(), file(), file_get_contents(), fgets(), fgetss(), fgetc()写:fwr ...
- APICloud上有关iOS证书的一些问题
1. 苹果开发者账号及其区别: 苹果的开发者账号分为个人.公司和企业三类. 个人是99$一年,只能个人使用,可以提交应用到AppStore: 公司的也是99$,但是可以邀请其它成员一起使用,可以提交应 ...
- SQL截取字符串函数
A.截取从字符串左边开始N个字符 以下是代码片段: Declare @S1 varchar(100) Select @S1='http://www.xrss.cn' Select Left( ...
- 解决【必须使用“角色管理工具”安装或配置Microsoft .NET Framework 3.5 SP1】的方法
[摘要:正在Windows Server 2008下间接装置SQL Server 2008时,会涌现以下毛病: 必需应用“脚色治理对象”装置或设置装备摆设Microsoft .NET Framewor ...
- 8月11日 Power-BI V11 QQ群视频交流开课啦
过去,用excel表格来做数据分析是很多企业的首选,但随着时代的发展,excel的某些功能已经不能满足用户的需求.今天的课程呢,我们就基于excel数据源来讲讲数据集构建器的应用. 时间:2016年8 ...