麻將 紀中3066 模擬

2021-07-16 21:58:36 字數 1119 閱讀 3787

麻將是中國傳統的娛樂工具之一。麻將牌的牌可以分為字牌(共有東、南、西、北、中、發、白七種)和序數牌(分為條子、餅子、萬子三種花色,每種花色各有一 到九的九種牌),每種牌各四張。在麻將中,通常情況下一組和了的牌(即完成的牌)由十四張牌組成。十四張牌中的兩張組成對子(即完全相同的兩張牌),剩餘 的十二張組成三張一組的四組,每一組須為順子(即同花色且序數相連的序數牌,例如條子的

三、四、五)或者是刻子(即完全相同的三張牌)。一組聽牌的牌是指 一組十三張牌,且再加上某一張牌就可以組成和牌。那一張加上的牌可以稱為等待牌。

在這裡,我們考慮一種特殊的麻將。在這種特殊的麻將裡,沒有字牌,花色也只有一種。但是,序數不被限制在一到九的範圍內,而是在1到n的範圍內。 同時,也沒有每一種牌四張的限制。一組和了的牌由3m + 2張牌組成,其中兩張組成對子,其餘3m張組成三張一組的m組,每組須為順子或刻子。現給出一組3m + 1張的牌,要求判斷該組牌是否為聽牌(即還差一張就可以和牌)。如果是的話,輸出所有可能的等待牌。

包含兩行。

第一行包含兩個由空格隔開整數n, m (9<=n<=400, 4<=m<=1000)。第二行包含3m + 1個由空格隔開整數,每個數均在範圍1到n之內。這些數代表要求判斷聽牌的牌的序數。

輸出為一行。

如果該組牌為聽牌,則輸出所有的可能的等待牌的序數,數字之間用乙個空格隔開。所有的序數必須按從小到大的順序輸出。如果該組牌不是聽牌,則輸出」no」。

列舉聽牌,列舉對子,能配成刻子就配成刻子,剩下的全部是順子

如果出現牌不夠就說明方案不成立

神奇,o(n

2)的複雜度不會炸,果然玄學

#include 

using

namespace

std;

int t[403],f[403],n,m,x;

int check()

}if (!flag)

return

1;

}}int main()

bool bb=false;

for (int v=1;v<=n;v++)

--f[v];

}if (!bb)

printf("no");

return

0;}

2016 6 11紀中模擬賽

題目 t1 赤裸裸的水題,直接高精度就行了。t2 這題本應放到3或4題上,可老師應該是故意放到這裡的吧 考試時我先想到的是貪心,隨後我又證明了我那種貪心是不可取的,可是我想都沒想下去,就認為這道題是dfs 記憶化了。所以,我就開始打記憶化了,可是題目的條件是100000 100000的,但如果開這麼...

NOIP模擬賽 麻將

題目描述 眾所周知,麻將是我們國家的國粹。這段時間,小d也迷上了麻將這個老少皆宜的遊戲。小d覺得這些不同規則的麻將太麻煩了,所以他集合了很多種麻將規則創造出了一套d麻將。下面是d麻將的幾個特點 d麻將中有三種花色,萬 w 索 s 筒 t 每個花色下有9張牌,每張牌有4個。d麻將中沒有槓牌,只有順子和...

反射(紀中模擬賽 普及)

農夫約翰把他的很多鏡子遺落在房子外面,他的奶牛們對這些鏡子很好奇,於是奶牛們把這些鏡子偷了!奶牛們把鏡子放在了乙個n m的矩陣中,在每個小方格中,他們將鏡子按正對角線或者反對角線的方式放置,也就是說鏡子的放置形狀要麼是 要麼是 某一天晚上,奶牛貝里斯拿著乙個手電筒站在矩陣的外面,他開啟手電筒按水平或...