zoukankan      html  css  js  c++  java
  • 第二届河南省大学生程序设计竞赛 奇特的艺术品

    奇特的艺术品
    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

    #include<stdio.h>
    #include<stdlib.h>
    struct Node{
        int data;
        Node *next;
    };
    int main()
    {
        int i,a,b,c,N,K,cnt;
        Node *head,*p,*h,*e,*t;
        scanf("%d%d",&N,&K);
        head=(Node *)malloc(sizeof(Node));
        head->next=NULL;
        head->data=0;
        for(i=N;i>=1;i--){
            p=(Node *)malloc(sizeof(Node));
            p->next=NULL;
            p->data=i;
            p->next=head->next;
            head->next=p;
        }
        for(i=0;i<K;i++){
            scanf("%d%d%d",&a,&b,&c);
            for(cnt=0,p=head;cnt<a-1;p=p->next,cnt++);
            h=p;
            t=h->next;
            for(cnt=0,p=head;cnt<b;p=p->next,cnt++);
            e=p;
            h->next=e->next;
            for(cnt=0,p=head;cnt<c;p=p->next,cnt++);
            e->next=p->next;
            p->next=t;
    
        }
        for(cnt=0,p=head->next;cnt<10;p=p->next,cnt++)
            printf("%d ",p->data);
        printf("\n");
        while(1);
        return 0;
    }

    刚开始怎么看题就是看不懂,用手工推倒也推不出来题目给的例子,最后上网搜了下,结果不知是题目有问题还是我们理解错了,网上搜的是用数组,感觉用数组容易产生错误混乱,所以采用了链表!

  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/shihuajie/p/3043546.html
Copyright © 2011-2022 走看看