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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...