2017 5 27測試 5 撲克遊戲

2021-08-03 02:17:45 字數 1891 閱讀 1400

5. 撲克遊戲

(e.pas/cpp/c)

【題目描述】

都知道,一副撲克裡有四種花色(梅花、黑桃、方塊、紅桃)。

假設每兩張同花色的牌組成一組,求當手上有n張牌時,至少組成1到n/2(向下取整)組牌時有多少種不同的方案?

例如:手中可有n張牌,可以構成: 梅花

黑桃 方塊 紅桃

a張 b張

c張 d張

a+b+c+d=n,其中0<=a,b,c,d<=n

即:求上**中所有不同方案能組成1到n/2組的方案數。

例如n=5時,只能構成1組、2組,不能構成3組;構成舉例如下: 梅花

黑桃 方塊 紅桃

構成方案說明 1張

2張 2張

0張黑桃或方塊可構成1組,沒有能構成2組的花色 2張

2張 0張

1張梅花或黑桃可構成1組,沒有能構成2組的花色 4張

0張 1張

0張梅花可構成1組,梅花也能構成2組 0張

5張 0張

0張黑桃有5張可構成1組,也能構成2組,但不能構成3組

………………

………………

由於最後答案可能會很大,請輸出答案 mod 10007的結果。

【輸入格式】

乙個數,n。

【輸出格式】

共n/2(向下取整)行,第i行表示至少組成i組牌時有多少種不同的方案。

【輸入樣例1】3

【輸出樣例1】16

【樣例解釋1】

以下列舉當手中有3張牌時,每種花色的張數,可能有以下16種情況:

梅花 黑桃 方塊 紅桃

0 0 0 3

0 0 1 2

0 0 2 1

0 0 3 0

0 1 0 2

0 1 2 0

0 2 0 1

0 2 1 0

0 3 0 0

1 0 0 2

1 0 2 0

1 2 0 0

2 0 0 1

2 0 1 0

2 1 0 0

3 0 0 0

【輸入樣例2】4

【輸出樣例2】34

10 【資料範圍】

30%n<=1000

100%n<=10000

var

h:array[0..4]of longint;

a:array[0..10000]of longint;

n,i,j,k,l,t,ans:longint;

begin

readln(n);

for i:=0 to n do

for j:=0 to n-i do

begin

k:=n-i-j;

t:=(i div 2)+(j div 2)+(k div 2);

if k mod 2=1 then a[t]:=(a[t]+k+1) mod 10007

else

begin

a[t]:=(a[t]+k div 2+1) mod 10007;

a[t-1]:=(a[t-1]+k div 2)mod 10007;

end;

end;

for i:=n div 2 downto 2 do a[i-1]:=(a[i-1]+a[i]) mod 10007;

for i:=1 to n div 2 do writeln(a[i]);

end.

撲克遊戲 1, 2

撲克遊戲 1 美美和山山決定玩撲克牌,他們共有n n 100 張撲克,這些撲克上分別標記為1,2,n,一開始,這些撲克是按標記從小到大放在一起 最上面一張是1,最下面一張是n 現在美美要把這些撲克打亂順序,他把上面第一張放在一邊 然後把最上面2張一張一張地依次移到最後,再把最上面一張放到剛才拿走那張...

德州撲克遊戲

哇,好久好久沒寫東西啦。這兩天實現了乙個簡單的遊戲引擎,可以發牌,可以比較兩手牌的大小 這階段過後準備用這個引擎來實現乙個簡單的ai對戰,現在先記錄一下,實現方面我用的是go語言 接下來我假設你已經懂遊戲規則和俗語了 首先是牌的儲存,2 a,一共13張牌,我用的是乙個14位的二進位制區間來儲存的,比...

撲克遊戲 打聯手

遊戲名稱 打聯手 無兄弟 不聯手 釋義1 兄弟聯手,共贏天下 釋義2 所有的兄弟,都是會有聯手共同行動 釋義3 二人 兄弟 夫妻 父子 同事 聯手,打別人的聯手 遊戲特點 結合三人鬥地主 及 四人打公升級 和 多人隔位同盟 的撲克特點,通過一手牌,二人聯手,共同決定出牌的方式,快速增進兩人的了解和互...