Jeff與骰子遊戲

2021-08-31 11:44:50 字數 1359 閱讀 4721

description

骰子大家一定都玩過。

乙個骰子有六個面,每個面都有乙個數字。對於骰子的每乙個面,你都可以通過朝乙個方向翻轉90度來獲得另乙個面。

現在你有乙個骰子,一開始朝上的一面點數為1(如圖上的第乙個骰子所示)。

你每次都可以將它朝乙個方向翻轉90度,並獲得相當於翻轉之後的骰子朝上一面的點數的分數。比如,現在骰子朝上的一面點數為1,你可以通過翻轉使它朝上的一面變成3,並獲得3分。

現在給出乙個目標分數s,請問你至少需要翻轉幾次,使得你的分數剛好等於目標分數。

input

題目包含多組測試資料。

第一行是乙個整數t,表示有t組測試資料。

對於每組測試資料,只有乙個正整數s,表示你需要達到的目標分數。(1 <= s <= 10000)

output

對於每組測試資料,輸出達到目標分數至少需要翻轉幾次,如果無解請輸出-1。

sample input

2 5 10

sample output

1 2hint

對於第二組樣例: 你可以先翻轉90度,使得骰子朝上的一面變為4,並獲得4分。 之後你可以再翻轉90度,使得骰子朝上的一面變為6,並獲得6分。 所以你至少需要2步來達到目標分數。

題解:bfd了解一下

c++版本一

還沒上傳過emmm大概這個思路

#include #include#include#include#include#includeusing namespace std;

int ta,n,m;

int vis[100000];

struct nodes,t,f;

queueq;

int bfs()}}

return -1;

}int main()

return 0;

}

c++版本二

某位大佬ac的**

#include#include#include#includeusing namespace std;

const int maxn=10000;

const int inf=0x3f3f3f3f;

int vis[maxn+3];

int fq[maxn+3];

struct node

hgf,dzb;

queueq;

int bfs()}}

return 0;

}int main()

return 0;

}

擲骰子遊戲

遊戲者每次投擲兩顆骨子,每個骰子是乙個正方體,當骰子停止時,將每個骰子朝上的點數相加,在第一次投擲骰子時,如果所得到的和為7或11,那麼遊戲者為勝 所得和為2 3或12則輸 如和為4 5 6 8 9或 10,則此和為遊戲者點數。如要想贏得勝利,必須繼續投擲骰子,直到取和得自己的點數 也即規則2的點數...

擲骰子遊戲

寫乙個搖骰子遊戲,要求使用者壓大小,賠率一賠一。要求 三個骰子,每個骰子的值從1 6,搖大小,每次列印搖出來3個骰子的值。import random defroll dice count 0 point 定義乙個空的點數變數儲存每次搖骰子獲得的數字 while count 3 num random....

擲骰子遊戲

編寫程式模擬擲骰子遊戲。已知擲骰子遊戲的遊戲規則為 每個骰子有6面,這些面包含1 2 3 4 5 6六個點,投兩枚骰子之後,計算點數之和。如果第一次投的點數和為7或11,則遊戲者獲勝 如果第一次投的點數和為2 3或12,則遊戲者輸 如果第一次投的點數和為4 5 6 8 9或10,則將這個和作為遊戲者...