2556. [NOIP2016]玩具謎題

来源:http://www.cnblogs.com/zwfymqz/archive/2017/05/21/6886146.html
-Advertisement-
Play Games

【題目描述】 小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了一個圈,它們有的面朝國內,有的面朝圈外。如下圖: 這時singer告訴小南一個謎題:“眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。” 小南發現, ...


【題目描述】


小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了一個圈,它們有的面朝國內,有的面朝圈外。如下圖:


   這時singer告訴小南一個謎題:“眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。”

   小南發現,這個謎題中玩具小人的朝向非常關鍵,因為朝內和朝外的玩具小人的左右方向是相反的:面朝圈內的玩具小人,它的左邊是順時針方向,右邊是逆時針方向;而面向圈外的玩具小人,它的左邊是逆時針方向,右邊是順時針方向。

   小南一邊艱難地辨認著玩具小人,一邊數著:

   “singer朝內,左數第3個是archer。

   “archer朝外,右數第1個是thinker。

   “thinker朝外,左數第2個是writer。

   “所以眼鏡藏在writer這裡!”

   雖然成功找回了眼鏡,但小南並沒有放心。如果下次有更多的玩具小人藏他的眼鏡,或是謎題的長度更長,他可能就無法找到眼鏡了。所以小南希望你寫程式幫他解決類似的謎題。這樣的謎題具體可以描述為:

   有n個玩具小入圍成一圈,己知它們的職業和朝向。現在第1個玩具小人告訴小南一個包含m條指令的謎題,其中第i條指令形如“左數/右數第Si個玩具小人”。你需要輸出依次數完這些指令後,到達的玩具小人的職業。



【輸入格式】


   從文件中讀入數據。

   輸入的第一行包含兩個正整數n,m,表示玩具小人的個數和指令的條數。

   接下來n行,每行包含一個整數和一個字元串,以逆時針為順序給出每個玩具小人的朝向和職業。其中0表示朝向圈內,1表示朝向圈外。保證不會出現其他的數。字元串長度不超過10且僅由小寫字母構成,字元串不為空,並且字元串兩兩不同。整數和字元串之間用一個空格隔開。

   接下來m行,其中第i行包含兩個整數ai,Si,表示第i條指令。若ai=0,表示向左數Si個人;若ai=1,表示向右數Si個人。保證ai不會出現其他的數,1<si<n。


【輸出格式】


輸出到文件中。

 輸出一個字元串,表示從第一個讀入的小人開始,依次數完m條指令後到達的小人的職業


【樣例1輸入】

7 3
0 singer
0 reader
0 mengbier
1 thinker
1 archer
0 writer
1 mogician
0 3
1 1
0 2

【樣例1輸出】

writer

【樣例1提示】

這組數據就是【題目描述】中提到的例子。

【樣例2輸入】

10 10
1 c
0 r
0 p
1 d
1 e
1 m
1 t
1 y
1 u
0 v
1 7
1 1
1 4
0 5
0 3
0 1
1 6
1 2
0 8
0 4

【樣例2輸出】

y

【提示】


   子任務會給出部分測試數據的特點。如果你在解決題目中遇到了困難,可以嘗試只解決一部分測試數據。

   每個測試點的數據規模及特點如下表:


其中一些簡寫的列意義如下:

·全朝內:若為“√”,表示該測試點保證所有的玩具小人都朝向圈內;

·全左數:若為“√”,表示該測試點保證所有的指令都向左數,即對任意的 1<i<m, ai=0;

·Si=1:若為“√”,表示該測試點保證所有的指令都只數1個,即對任意的 1≤i≤m,  Si=1;

·職業長度為1:若為“√”,表示該測試點保證所有玩具小人的職業一定是一個 長度為1的字元串。


純模擬啊。。。。

要是今年的noip還出這樣的題就好了!

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 const int MAXN=100001;
 7 int n,m,how,step;
 8 struct node
 9 {
10     string name;
11     int to;
12 }a[MAXN];
13 int read(int &n)
14 {
15     char ch=' ';int q=0,w=1;
16     for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
17     if(ch=='-')w=-1,ch=getchar();
18     for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;
19     n=q*w;    return n;
20 }
21 int main()
22 {
23     //freopen("toya.in","r",stdin);
24     //freopen("toya.out","w",stdout);
25     read(n);read(m);
26     //scanf("%d%d",&n,&m);
27     //ios::sync_with_stdio(false);
28     for(int i=1;i<=n;++i)
29     {
30         read(a[i].to);
31         //scanf("%d",&a[i].to);
32         //cout<<a[i].to<<"*************"<<endl;
33         // 0朝向圈內  1朝向圈外 
34         cin>>a[i].name;
35     }
36     int where=1;
37     for(int i=1;i<=m;++i)
38     {
39         read(how);read(step);
40         //scanf("%d%d",&how,&step);
41         // 0向左數,1向右數
42         if(how==0)
43         {
44             if(a[where].to==0)// 向內
45             {
46                 where=where-step;
47                 if(where<=0)
48                 where=where+n;    
49             }
50             else if(a[where].to==1)// 向外 
51             {
52                 where=where+step;
53                 if(where>n)
54                 where=where-n;
55             }
56         }
57         else// 向右數 
58         {
59             if(a[where].to==0)
60             {
61                 where=where+step;
62                 if(where>n)
63                 where=where-n;
64             }
65             else
66             {
67                 where=where-step;
68                 if(where<=0)
69                 where=where+n;    
70             }
71         }
72     }
73     cout<<a[where].name;
74     return 0;
75 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • @echo off::port為需要去綁定埠set port=8888for /f "tokens=5 delims= " %%a in ('netstat -ano ^|findstr /c "%port%"') do ( echo pid=%%ataskkill /f /pid %%aGOTO ...
  • 一、py2和py3的區別 最大的區別在於,py3對Unicode的支持 官方將在2020年停止對py2.7的支持 One popular module that don't yet support Python 3 is Twisted (for networking and other appli ...
  • JSON中存儲的是key:value,其實在編程的時候我們會遇到很多都是key:value的形式。比如:map,java對象(一個對象的一個屬性只會有一個值),資料庫中key:value對應著裡面存儲的一個數據,redis的本質就是key:value。所以你會發現key:value很有用。 1.將任 ...
  • Linux環境用g++編譯GDAL動態庫的詳細步驟和一些問題 ...
  • ConfigParser模塊,hashlib模塊,hmac模塊: 創建配置文件: 查看: 修改,添加,刪除: hashlib模塊: 加密類型:MD5,SHA1,SHA224,SHA256,SHA384,SHA512 hmac模塊: ...
  • 上篇用了單工程創建了SSM整合的web工程(http://www.cnblogs.com/yuanjava/p/6748956.html),這次我們把上篇的單工程改造成為多模塊工程 一:創建對應的多工程 首先原工程有對應的包如下 因為原單工程是 contoller 調用 service ,servi ...
  • 作業:計算器開發 (1)實現加減乘除及拓號優先順序解析; (2)用戶輸入 1 - 2 * ( (60-30 +(-40/5) * (-9-2*5/-3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等類似公式後,必須自己解析裡面的(),+,- ...
  • 有這麼一個有趣的問題,問: 有這麼一個不重覆的自然數數組,自然數長度為N,而數組長度為N 2,依次隨機把自然數放進數組中,請找出2個沒有被放進去的自然數。 例如:這個自然數數組是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]這十個數,某次隨機放入的順序是[2, 1, 3, 5, 7, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...