魔獸世界之一:備戰

来源:http://www.cnblogs.com/tygao/archive/2016/10/24/5992770.html
-Advertisement-
Play Games

來源: POJ 註意: 總時間限制: 1000ms 記憶體限制: 65536kB 描述 魔獸世界的西面是紅魔軍的司令部,東面是藍魔軍的司令部。兩個司令部之間是依次排列的若幹城市。 紅司令部,City 1,City 2,……,City n,藍司令部 兩軍的司令部都會製造武士。武士一共有 dragon 、 ...


來源: POJ 

註意: 總時間限制: 1000ms 記憶體限制: 65536kB

描述

魔獸世界的西面是紅魔軍的司令部,東面是藍魔軍的司令部。兩個司令部之間是依次排列的若幹城市。

紅司令部,City 1,City 2,……,City n,藍司令部

兩軍的司令部都會製造武士。武士一共有 dragon 、ninja、iceman、lion、wolf 五種。每種武士都有編號、生命值、攻擊力這三種屬性。

雙方的武士編號都是從1開始計算。紅方製造出來的第n個武士,編號就是n。同樣,藍方製造出來的第n個武士,編號也是n。

武士在剛降生的時候有一個生命值。

在每個整點,雙方的司令部中各有一個武士降生。

紅方司令部按照iceman、lion、wolf、ninja、dragon的順序迴圈製造武士。

藍方司令部按照lion、dragon、ninja、iceman、wolf的順序迴圈製造武士。

製造武士需要生命元。

 

 

製造一個初始生命值為m的武士,司令部中的生命元就要減少m個。

如果司令部中的生命元不足以製造某個按順序應該製造的武士,那麼司令部就試圖製造下一個。如果所有武士都不能製造了,則司令部停止製造武士。

給定一個時間,和雙方司令部的初始生命元數目,要求你將從0點0分開始到雙方司令部停止製造武士為止的所有事件按順序輸出。

一共有兩種事件,其對應的輸出樣例如下:

1) 武士降生

輸出樣例: 004 blue lion 5 born with strength 5,2 lion in red headquarter

表示在4點整,編號為5的藍魔lion武士降生,它降生時生命值為5,降生後藍魔司令部里共有2個lion武士。(為簡單起見,不考慮單詞的複數形式)註意,每製造出一個新的武士,都要輸出此時司令部里共有多少個該種武士。

2) 司令部停止製造武士

輸出樣例: 010 red headquarter stops making warriors

表示在10點整,紅方司令部停止製造武士

輸出事件時:

首先按時間順序輸出;

同一時間發生的事件,先輸出紅司令部的,再輸出藍司令部的。

 

輸入

第一行是一個整數,代表測試數據組數。

每組測試數據共兩行。

第一行:一個整數M。其含義為, 每個司令部一開始都有M個生命元( 1 <= M <= 10000)。

第二行:五個整數,依次是 dragon 、ninja、iceman、lion、wolf 的初始生命值。它們都大於0小於等於10000。

 

輸出

對每組測試數據,要求輸出從0時0分開始,到雙方司令部都停止製造武士為止的所有事件。

對每組測試數據,首先輸出"Case:n" n是測試數據的編號,從1開始 。

接下來按恰當的順序和格式輸出所有事件。每個事件都以事件發生的時間開頭,時間以小時為單位,有三位。

 

樣例輸入

1 2 3       1 20 3 4 5 6 7    

 

樣例輸出

1 2 3 4 5 6 7 8 9 10       Case:1 000 red iceman 1 born with strength 5,1 iceman in red headquarter 000 blue lion 1 born with strength 6,1 lion in blue headquarter 001 red lion 2 born with strength 6,1 lion in red headquarter 001 blue dragon 2 born with strength 3,1 dragon in blue headquarter 002 red wolf 3 born with strength 7,1 wolf in red headquarter 002 blue ninja 3 born with strength 4,1 ninja in blue headquarter 003 red headquarter stops making warriors 003 blue iceman 4 born with strength 5,1 iceman in blue headquarter 004 blue headquarter stops making warriors      
//兩軍司令部都會製造武士有 dragon ninja iceman lion wolf 五種 每種武士都有編號(number),生命值(health) ,攻擊力(attack)三種屬性 
//紅方司令部按照 iceman lion wolf ninja gradon的順序製造武士
//藍方司令部按照 lion gradon ninja iceman wolf的順序製造武士
//每製造一個生命值為M的武士司令部的生命值就要減少m
#include <iostream>
#include <string>
#include <iomanip> 
using namespace std;
class hero{
public: 
    void set_health(){
        int h;
        cin>>h;
        health=h;
    }
    int print_health(){
        return health;
    } 
private:
     int number;
    int health;
    int attack;    
 } dragon,ninja,iceman,lion,wolf;
 int main()
 {
     int s;//測試組數
    cin>>s;
    for(int i=0;i<s;i++){
        int counter=1;//計數器 計算英雄生成的周期 
        int R,B;//紅藍司令部的生命值
        int r[5],b[5];//儲存五種對象分別的生命值 
        int time=0;//創建時間
        int number=1;
        string s_r[5]={"iceman","lion","wolf","ninja","dragon"};//將對象名用字元串表示 
        string s_b[5]={"lion","dragon","ninja","iceman","wolf"};
        cin>>R;//輸入生命值 
        B=R;// 紅藍司令部的生命值相等 
          dragon.set_health();    b[1]=r[4]=dragon.print_health();
          ninja.set_health();        b[2]=r[3]=ninja.print_health();
        iceman.set_health();    b[3]=r[0]=iceman.print_health();  
        lion.set_health();      b[0]=r[1]=lion.print_health();  
        wolf.set_health();        b[4]=r[2]=wolf.print_health(); 
        cout<<"case:"<<i+1<<endl;
        //依次輸入 dragon ninja iceman lion wolf的生命值
        int first_r=1,first_b=1;//設置計數器,控制紅方/藍方最後一行只輸出一次終止信息 
        for(int i=0;  ;i++,time++,number++){//迴圈輸出創建英雄的信息

            R-=r[i];
            if(R>=0){
                cout<<setfill('0')<<setw(3)<<time<<" "<<"red"<<" "<<s_r[i]<<" "<<number<<" born with strength "<<r[i]<<","<<counter<<" "<<s_r[i]<<" in red headquarter"<<endl;            
            }
            else{
                if(first_r){
                    cout<<setfill('0')<<setw(3)<<time<<" red headquarter stops making warriors"<<endl;
                    first_r=0; 
                }
            }
            B-=b[i];    
            if(B>=0){
                 cout<<setfill('0')<<setw(3)<<time<<" "<<"blue"<<" "<<s_b[i]<<" "<<number<<" born with strength "<<b[i]<<","<<counter<<" "<<s_b[i]<<" in blue headquarter"<<endl;
            }
            else{
                if(first_b){
                    cout<<setfill('0')<<setw(3)<<time<<" bule headquarter stops making warriors"<<endl;
                    first_b=0;
                }
            }    
            if(i==4){
                i=-1;
                counter++;
            }     
            if(first_r==0&&first_b==0){
                break;    
            } 
        }
    }
     return 0;
 }
  

 

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

-Advertisement-
Play Games
更多相關文章
  • 隨著項目深入,需要移植到安卓上,問題來了,QML安卓適配! 幸好PC端程式和手機屏幕長寬比例相似。雖然單位像素,尺寸不同,通過比例縮放,可以實現組件PC和安卓通用代碼。 第一步:定義全局的轉換函數(300,500是你的PC端設計尺寸) 第二步:將所有相關尺寸的都通過上面的轉換函數計算新值 第三步:對 ...
  • php採集神器CURL使用方法詳解 php採集神器CURL使用方法詳解 作者:佚名 更新時間:2016-10-21 作者:佚名 更新時間:2016-10-21 作者:佚名 更新時間:2016-10-21 對於做過數據採集的人來說,cURL一定不會陌生。雖然在PHP中有file_get_content ...
  • 首先我們要JavaWeb登陸的基本流程:JSP頁面發送請求——>Servlet——>Servlet通過調用方法從資料庫中得到數據並將結果返回頁面 我們先建立三個jsp頁面,包括login.jsp(登陸頁面)、index.jsp(顯示登陸成功後的信息)、error.jsp(登錄失敗的頁面),其中後兩個 ...
  • 1 概述 在進行ESB集成項目中,使用到了很多系統的介面,這些介面傳輸的數據大部分都採用了XML的格式,這樣在使用ESB開發服務時就需要對XML數據進行解析或拼接的操作,本文以項目中流程服務為例,講解一些常用的Dom4j對XML的操作。 2 名詞解釋 Dom4j:一個Java的XML API,用來讀 ...
  • 做python項目,需要用到mysql,一般用python-mysql,安裝時遇到錯誤提示如下: Command "python setup.py egg_info" failed with error code 1 Trace的關鍵信息是:sh: mysql_config: command not ...
  • 測試在進行一次性能測試的時候發現併發300個請求時出現了下麵的異常: HTTP Status 500 - Handler processing failed; nested exception is java.lang.OutOfMemoryError: unable to create new n ...
  • 【轉盤游戲】有一個轉盤,26個英文字母均勻分佈在轉盤邊緣,轉針初始位置在字母a,每次只能轉動到相鄰的字母,然後輸入一個由26個字母組成的字元串(最長100),不複位地依次轉動到相應的字母位置,問:一共需要轉多少次?編程實現。 Input:   輸入一個字元串,最長100,由26個英文字母組成。... ...
  • 前言: 我們在做自然語言學習的過程中使用Python進行編程。是用解析器的方式確實有些麻煩。在這裡給大家推薦一款集成開發環境IDE可以很方便的對Python進行項目管理,代碼自動提示,運行調試等。 簡介: 這裡不做其它IDE的推薦,直接推薦pycharm。它是大名頂頂的JetBrains公司出品的基 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...