解題報告 AHOI2001 彩票搖獎

2022-05-19 19:27:54 字數 1315 閱讀 6589

為了豐富人民群眾的生活、支援某些社會公益事業,北塔市設定了一項彩票。該彩票的規則是:

(1) 每張彩票上印有 7 個各不相同的號碼,且這些號碼的取指範圍為 1~33。

(2) 每次在兌獎前都會公布乙個由七個各不相同的號碼構成的中獎號碼。

(3) 共設定 7 個獎項,特等獎和一等獎至六等獎。兌獎規則如下:

特等獎:要求彩票上 7 個號碼都出現在中獎號碼中。

一等獎:要求彩票上有 6 個號碼出現在中獎號碼中。

二等獎:要求彩票上有 5 個號碼出現在中獎號碼中。

三等獎:要求彩票上有 4 個號碼出現在中獎號碼中。

四等獎:要求彩票上有 3 個號碼出現在中獎號碼中。

五等獎:要求彩票上有 2 個號碼出現在中獎號碼中。

六等獎:要求彩票上有 1 個號碼出現在中獎號碼中。

注:兌獎時並不考慮彩票上的號碼和中獎號碼中的各個號碼出現的位置。例如,中獎號碼為 23 31 1 14 19 17 18,則彩票 12 8 9 23 1 16 7 由於其中有兩個號碼(23 和 1)出現在中獎號碼中,所以該彩票中了五等獎。

現已知中獎號碼和小明買的若干張彩票的號碼,請你寫乙個程式幫助小明判斷他買的彩票的中獎情況。

檔案的第一行只有乙個自然數 n (n < 1000) ,表示小明買的彩票張數;

第二行存放了 7 個介於 1 和 33 之間的自然數,表示中獎號碼;

在隨後的 n 行中每行都有 7 個介於 1 和 33 之間的自然數,分別表示小明所買的 n 張彩票。

依次輸出小明所買的彩票的中獎情況(中獎的張數),首先輸出特等獎的中獎張數,然後依次輸出一等獎至六等獎的中獎張數。

輸入 #1

2

23 31 1 14 19 17 18

12 8 9 23 1 16 7

11 7 10 21 2 9 31

輸出 #1

0 0 0 0 0 1 1
運用了一點點解題技巧

ac**

#include #include #include #include using namespace std;

int n;

int m;

int c[50];

int p[10];

int main()

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

p[prize]++;

} for(int i=7;i>=1;i--)

cout

}

P2550 AHOI2001 彩票搖獎

為了豐富人民群眾的生活 支援某些社會公益事業,北塔市設定了一 項彩票。該彩票的規則是 1 每張彩票上印有 7 個各不相同的號碼,且這些號碼的取指範圍為 1 33。2 每次在兌獎前都會公布乙個由七個各不相同的號碼構成的中獎號碼。3 共設定 7 個獎項,特等獎和一等獎至六等獎。兌獎規則如下 特等獎 要求...

題解 P2550 AHOI2001 彩票搖獎

題目鏈結 大家有沒有發現資料範圍好小呀 我們只需要開7 8的陣列就好!中間比較的時候懶得用for迴圈比較了。直接爆搜。廢話不多說,直接上 includeusing namespace std int a 7 作為中獎號碼 int b 7 作為每一回彩票號碼 int c 7 作為中獎的等級 intma...

AHOI2017初中組解題報告

題目描述 乙個n n的網格圖上有m個探測器,每個探測器有個探測半徑r,問這n n個點中有多少個點能被探測到。輸入格式 第一行3個整數n,m,r 接下來m行,每行兩個整數x,y表示第i個探測器的座標 輸出格式 能被探測到的點的個數 樣例輸入 5 2 1 3 3 4 2 樣例輸出 8 資料範圍 1 n,...