中石油訓練賽 姓氏 思維 水題

2021-09-29 17:01:03 字數 1484 閱讀 4101

在乙個很大的課室裡,裡面有很多學生在聽課。l老師挑選了其中的n個不同的學生起立回答問題,l老師對起立的每乙個學生都是問同樣的問題:「在本課室裡,和你同姓的學生有多少人(不包括你自己)?」。這n個起立的同學的回答如下:

第1位起立的同學回答:和我同姓的,除了我之外,本課室裡還有a[1]個學生。

第2位起立的同學回答:和我同姓的,除了我之外,本課室裡還有a[2]個學生。

第3位起立的同學回答:和我同姓的,除了我之外,本課室裡還有a[3]個學生。

。。。。。。

第n位起立的同學回答:和我同姓的,除了我之外,本課室裡還有a[n]個同學。

假設這n位同學的回答都是正確的,那麼課室裡至少有多少個學生?

第一行,乙個整數n。

第二行,n個整數,空格分開,第i個整數表示a[i]。

乙個整數,表示課室裡至少有多少個學生。

4

1 2 1 2

5
根據4位學生的回答,可以推斷出課室不可能少於5個學生,所以輸出5。

對於20%的資料, n = 2,0<=a[i]<=10。

對於另外20%的資料, n = 3, 0<=a[i]<=100。

對於100%的資料,3題目大意:給出n個條件,說明除自己之外有a[i]個人的姓氏和自己相同,問全班最少有多少個人

題目分析:首先我們要簡單轉換一下,出自己之外有a[i]個人的姓氏和自己相同,也就是全班一共有a[i]+1個人有當前第i個人的姓氏,一開始我是想直接用set去重然後記錄一下有多少個不同的數字的,然後累加一下,但是wa掉了,去找xy大佬要了乙個資料,直接把我hack掉了,那就是

2 2 2 2

正確答案應該是6,而我的程式給出的答案是4,現在我意識到了這個題目還和a[i]+1的數量有關係,如果a[i]+1的數量大於a[i]+1的話,那麼用乙個姓氏就不夠了,所以我們還需要用map儲存一下有多少個a[i]+1,最後處理的時候稍微注意一下這個細節就好了

一開始沒做這個題是因為確實沒看懂題。。第一反應還以為是福爾摩斯找犯人的那種邏輯模擬題,結果發現就是個簡單思維題

**:

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

typedef long long ll;

const int inf=0x3f3f3f3f;

const int n=1e5+100;

int main()

int sum=0;

for(auto it:mp) }

if(sum>=n)

printf("%d\n",sum);

else

printf("%d\n",n);

return 0;

}

中石油訓練賽 招待 思維

題目大意 給出乙個天平,砝碼由3的冪次組成,再給出物品重量,求如何擺放砝碼能使得天平平衡 題目分析 既然給出的砝碼是3的冪次組成,那麼我們就將給出的物品重量轉換為三進製即可,那麼表示其每一位只有可能是0,1,2三個數字,我們假設物品擺在a盤,那麼 當前位數字為0,就說明該冪次沒有貢獻,所以不做處理 ...

中石油訓練賽 圍欄翻新 思維 貪心 差分

小明的破舊圍欄又要噴塗油漆了。圍欄由n個木板構成,每個寬度都為1cm,但是高度各不相同。他給自己買了乙個噴漆機器,噴塗頭恰好也是1cm寬。小明的噴漆機器是直接噴射的,因此噴頭的每乙個部位必須一直接觸到木板,否則尤其會汙染他的農田。並且機器也必須時刻與地面平行。可以看出,小明每次必須在同一高度對木板噴...

中石油訓練賽十 天平

莫名感覺這道題和找零錢是一樣一樣的,便於記憶情況下,還是給寫一下比較好 簡單思路 貪心,要使右盤所放砝碼最少,則要從較大質量的砝碼開始放起。小 t 到 cz 中學上的第一堂課是物理課,第一堂課 l 老師就把大家帶到創新實驗室去 做實驗了,實驗的內容是天平稱物。眾所周知天平是物理實驗室中的一種衡量物體...