CSU 1723: 想打架嗎?算我一個!所有人,都過來!
題目:
Description
現在《爐石傳說》這款卡牌遊戲已經風靡全球。2015年加入環境的“黑石山的火焰”擴充套件帶來了一個新套牌的核心卡片“恐怖的奴隸主”,而這套統治遊戲的套牌叫做“奴隸戰”。“恐怖的奴隸主”的登場音效“想打架嗎?算我一個!”一定在所有這個時代的《爐石傳說》玩家心裡留下來難以磨滅的印象。
“恐怖的奴隸主”是一個有3點生命值的生物,當其在場上受到非致命傷害時(如3點生命值的奴隸主受到1點或2點傷害時,或者2點生命值的奴隸主受到1點傷害時)會召喚一個新的3點生命值的“恐怖的奴隸主”,受到致命傷害(傷害大於等於現有生命值)時則會直接死去。另外一類卡片可以使全部生物造成
另一方面,《爐石傳說》規定,場上最多存在7個生物,這極大地限制了“恐怖的奴隸主”“越生越多”。當一次“旋風斬效果”發生時,優先處理受到非致命傷害的“恐怖的奴隸主”,召喚新的“恐怖的奴隸主”,直到生物數量達到7個不再繼續召喚新的“恐怖的奴隸主”,然後清除掉生命值降為0或0以下的“恐怖奴隸主”。如場上有7個生命值為1的“恐怖的奴隸主”,則一次“旋風斬效果”後場上有0個“恐怖的奴隸主”。又如,場上有6個生命值為3的“恐怖的奴隸主”,則一次“旋風斬效果”後場上有
現在場上有1個3點生命的“恐怖的奴隸主”,問n次“旋風斬效果”後場上有多少個“恐怖的奴隸主”,在這n次“旋風斬效果”每次結束時,場上存在“恐怖的奴隸主”最多的個數是多少。
Input
第1行輸入一個k(1<=k<=100000)代表有接下來有k組資料。
第2到k+1行 每行輸入一個n(0<=n<=10^9),意義如前文所述。
Output
對於每一組資料,用一行輸出組數, 1個3點生命的“恐怖的奴隸主”,在n次“旋風斬效果”後場上有多少個“恐怖的奴隸主”,以及在這n次“旋風斬效果”每次結束時,場上存在“恐怖的奴隸主”最多的個數是多少。具體格式見樣例。
Sample Input
2
2
4
Sample Output
Case 1: 4 4
Case 2: 6 6
這個題目的k很大,所以用cout是不行的。
既然k這麼大,肯定是有一些規律的。
實際上規律特別簡單,奴隸主的數量和生命值的狀態隨著n的變化如下:
(從n=0開始)3——23——1233——122333——112223——11123——1233
這就已經很明顯了,開始以4為週期進行迴圈了。
程式碼:
#include<iostream>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
int n;
int f=0;
while (t--)
{
f++;
scanf("%d", &n);
int a = 1, b = 1;
if (n < 3)
{
if (n == 1)a = 2 ;
if (n == 2)a = 4;
b = a;
}
else
{
n = n % 4;
a = 6;
if (n == 1)a = 5;
else if (n == 2)a = 4;
b = 6;
}
printf("Case %d: %d %d\n",f,a,b);
}
return 0;
}