题目

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的艺术品的更多相关文章

  1. NYOJ---540奇怪的排序

    奇怪的排序 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情.惟独对自然数的理解与人类不一 ...

  2. 探 寻 宝 藏--- DP

    题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦 ...

  3. G.Interference Signal---河南省第八届程序设计大赛(dp)

    G.Interference Signal 时间限制: 2 Sec  内存限制: 128 MB提交: 47  解决: 18[提交][状态] 题目描述 Dr.Kong’s laboratory moni ...

  4. (扩展欧几里德算法)zzuoj 10402: C.机器人

    10402: C.机器人 Description Dr. Kong 设计的机器人卡尔非常活泼,既能原地蹦,又能跳远.由于受软硬件设计所限,机器人卡尔只能定点跳远.若机器人站在(X,Y)位置,它可以原地 ...

  5. nyoj305_表达式求值

    表达式求值 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min ...

  6. ACM 房间安排

    房间安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 2010年上海世界博览会(Expo2010),是第41届世界博览会.于2010年5月1日至10月31日期间, ...

  7. 房间安排-nyoj168

    描述 2010年上海世界博览会(Expo2010),是第41届世界博览会.于2010年5月1日至10月31日期间,在中国上海市举行.本次世博会也是由中国举办的首届世界博览会.上海世博会以“城市,让生活 ...

  8. nyoj 712 探 寻 宝 藏--最小费用最大流

    问题 D: 探 寻 宝 藏 时间限制: 1 Sec  内存限制: 128 MB 题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有 ...

  9. nyoj------170网络的可靠性

    网络的可靠性 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商.它将提供先进的网络协作技术,展 ...

随机推荐

  1. C# json object互转工具

    public static T Deserializer<T>(string path) { try { System.Xml.XmlDocument xd = new System.Xm ...

  2. HDFS的联盟Federation

    一:概述 1.单个namenode的局限性 namespace的限制 单个namenode所能存储的对象受到JVM中的heap size的限制 namenode的扩张性 不可以水平扩张 隔离性 单个n ...

  3. JavaScript学习基础部分

    JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...

  4. Excl 的一些用法--如何给很多列赋同一个值

    1.用鼠标选定要负责的列(多列) 2.在处填写值 3.Ctrl+Enter

  5. iOS ASIHTTPRequest 请求https

    iOS 终端请求服务端数据时,为了保证数据安全,我们一般会使用https协议加密,而对于iOS的网络编程,我们一般会使用开源框架:ASIHTTPRequest,但是如果使用传统的http方式,即使忽略 ...

  6. php文件和目录操作函数

    文件:打开和关闭:fopen(), fclose()读:readfile(), file(), file_get_contents(), fgets(), fgetss(), fgetc()写:fwr ...

  7. APICloud上有关iOS证书的一些问题

    1. 苹果开发者账号及其区别: 苹果的开发者账号分为个人.公司和企业三类. 个人是99$一年,只能个人使用,可以提交应用到AppStore: 公司的也是99$,但是可以邀请其它成员一起使用,可以提交应 ...

  8. SQL截取字符串函数

    A.截取从字符串左边开始N个字符 以下是代码片段:    Declare @S1 varchar(100)  Select @S1='http://www.xrss.cn'  Select Left( ...

  9. 解决【必须使用“角色管理工具”安装或配置Microsoft .NET Framework 3.5 SP1】的方法

    [摘要:正在Windows Server 2008下间接装置SQL Server 2008时,会涌现以下毛病: 必需应用“脚色治理对象”装置或设置装备摆设Microsoft .NET Framewor ...

  10. 8月11日 Power-BI V11 QQ群视频交流开课啦

    过去,用excel表格来做数据分析是很多企业的首选,但随着时代的发展,excel的某些功能已经不能满足用户的需求.今天的课程呢,我们就基于excel数据源来讲讲数据集构建器的应用. 时间:2016年8 ...