NYOJ 93

news/2024/7/8 1:21:36

 

汉诺塔(三)

时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述

在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。

 

现在我们把三根针编号为1,2,3。

所有的金片在初始时都在1号针上,现在给你的任务是判断一系列的指令过程中,是否会出现非法的指令。

而非法指令有以下两种情况:

1、某个针上已经没有金片了,但是指令依然要求从该处移动金片到其它针上。

2、把一个大的金片移动到了小的金片上。

输入
第一行输入一个整数N表示测试数据的组数(N<10)
每组测试数据的第一行有两个整数P,Q(1<P<64,1<Q<100),分别表示汉诺塔的层数与随后指令的条数
随后的Q行,每行都输入两个整数a,b,(1<=a,b<=3)表示一条指令。
指令1 2表示把1号针最上面的金片移动到2号针最上面。
数据保证a,b不会相同。
输出
如果存在非法指令,请输出illegal
不存在非法指令则输出legal
样例输入
3
2 1
1 2
3 3
1 2
1 3
3 2
2 1
2 1
样例输出
legal
illegal
illegal
 1 #include<iostream>
 2 #include<stack>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int i,j,k,T;
 8      int a,b,m,n;
 9     stack <int> s[4];
10     cin>>T;
11     while(T--)
12     {
13         cin>>m>>n;
14         for(i=1;i<4;i++)
15             while(!s[i].empty()) s[i].pop();
16         for(i=m;i>0;--i) s[1].push(i);
17         while(n--)
18         {
19             cin>>a>>b;
20             if(!s[a].empty()&&(s[b].empty()||s[a].top()<s[b].top()))
21                {
22                 int temp = s[a].top();
23                 s[a].pop();
24                 s[b].push(temp);
25             }
26                else 
27                     break;
28         }//若全部合法,则n为-1 
29         if(n+1) 
30                cout<<"illegal"<<endl;
31         else 
32                cout<<"legal"<<endl;
33     }
34     return 0;
35 }
36         

 


http://lihuaxi.xjx100.cn/news/268195.html

相关文章

Linux之终端命令格式的组成

Linux之终端命令格式的组成 1. 终端命令格式说明 command [-options] [parameter] 【一般情况下这两项是可以调换位置的】 每项信息的说明: command&#xff1a;命令名, 比如: ls、pwd[-options]&#xff1a;选项&#xff0c;可以有零个、一个或者多个选项&#xff0c;多个…

python Counter类

import collections obj collections.Counter(aabbccc) print(obj)#输出&#xff1a;Counter({c: 3, a: 2, b: 2})elements() import collections obj collections.Counter(aabbccc) print(sorted(obj.elements()))#输出&#xff1a;[a, a, b, b, c, c, c]for k in obj.eleme…

RTP timestamp与帧率及时钟频率的关系

https://blog.csdn.net/jasonhwang/article/details/7316128 本文链接

调用短信接口,先var_dump()看数据类型是object需要json_decode(json_encode( $resp),true)转换成array...

返回的数据.先看类型,如果是object类型 先json_encode, 再json_decode,加true 转换成数组 $resp $c->execute($req); var_dump($resp); object(stdClass)#12 (2) { ["result"]> object(stdClass)#13 (3) { ["err_code"]> string(1) "0"…

AI 技术发展飞快,高校 AI 教师的知识储备能满足学生旺盛的求知欲吗?

2019 年&#xff0c;AI 技术以惊人的速度发展&#xff1b;2020 年&#xff0c;AI 技术成熟的时机已经到来&#xff0c;随之而来的&#xff0c;是越来越旺盛的 AI 人才需求。近日&#xff0c;国家正式发布了一份《2020 年人工智能产业人才发展报告》显示&#xff0c;2020 年人工…

arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改

Arcgis sever 10.3安装之后&#xff0c;自带tomcat web服务程序&#xff0c;在安装路径C:\Program Files\ArcGIS\Server\framework\runtime\tomcat里面。若要修改Arcgis sever 10.3服务端口号码&#xff0c;需要修改两个文件中的端口设置&#xff1a;1.****\ArcGIS\Server\fram…

你必须非常努力,才能看起来毫不费力

有一群人&#xff0c;他们积极自律&#xff0c;每天按计划行事&#xff0c;有条不紊&#xff1b;他们不张扬&#xff0c;把自己当成最卑微的小草&#xff0c;等待着人生开出花朵的那天。他们早晨5点多起来健身&#xff0c;你在睡觉&#xff1b;7点开始享受丰盛的早餐&#xff0…

博士因论文致谢走红后,回到母校演讲再刷屏!网友:是对寒门学子最好的激励...

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达本文来源&#xff1a;黄国平微博、观察者网我走了很远的路&#xff0c;吃了很多的苦&#xff0c;才将这份博士学位论文送到你的面前。二十二载求学路&#xff0c;一路风雨泥…