C語言入門水題總結2

2021-08-19 14:22:32 字數 3826 閱讀 5669

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:1 描述

最近topcoder的xd遇到了乙個難題,倘若乙個數的三次方的後三位是111,他把這樣的數稱為小光棍數。他已經知道了第乙個小光棍數是471,471的三次方是104487111,現在他想知道第m(m<=10000000000)個小光棍數是多少?

輸入有多組測試資料。第一行乙個整數n,表示有n組測試資料。接下來的每行有乙個整數m。

輸出輸出第m個小光棍數。

樣例輸入

1

1

樣例輸出

471
關鍵點:發現其中的同餘定理,只要後三位數為471,即可得出,其次,注意到m的取值範圍

#includeint main()

}

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:1描述

最近發現了乙個搞笑的遊戲,不過目前還沒玩過。乙個舞會上,每個人頭上都戴著一頂帽子,帽子只有黑白兩種,黑的至少有一頂。每個人都能看到別人帽子的顏色,可是看不見自己的。主持人先讓大家看看別人頭上戴的是什麼帽子,然後關燈,如果有人認為自己戴的的黑色帽子,就打自己乙個耳光(

輸入第一行只有乙個整數m(m<=100000),表示測試資料組數。

接下來的m行,每行有乙個整數n(n<=100000000),表示黑色帽子的頂數。

輸出輸出第幾次關燈能聽到耳光聲,每組輸出佔一行。

樣例輸入

1

2

樣例輸出

2
注:剛開始我以為不管有(一除外)幾頂帽子,參加者在第一次熄燈後發現沒人打自己,就會判斷自己是黑帽子,所以都為二,現假設為n頂,戴黑帽子者看到是n-1頂,每次等待其餘黑帽者共為n-1次,加上開頭一次,則為n次

#includeint main(void)

}

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:2描述

2023年上海世界博覽會(expo2010),是第41屆世界博覽會。於2023年5月1日至10月31日期間,在中國上海市舉行。本次世博會也是由中國舉辦的首屆世界博覽會。上海世博會以「城市,讓生活更美好」(better city,better life)為主題,將充分探索21世紀城市生活。

這次世博會總投資達450億人民幣,創造了世界博覽會史上的最大規模記錄。吸引200個國家和國際組織參展。預計有7000萬人次的參觀者。

為了更好地接待在這期間來自世界各地的參觀者,如何合理安排各賓館的住房問題提到了日程。組委會已接到了大量的客戶住宿定單,每張定單的內容包括要住宿的房間數,開始住宿時間和要住的天數。為了便於整個城市各賓館的管理,組委會希望對這些定單進行安排,目的是用盡可能少的房間來滿足這些定單,以便空出更多的房間用於安排流動遊客。

組委會請求dr.kong來完成這個任務,對這些定單進行合理安排,使得滿足這些定單要求的房間數最少。

假設:某個定單上的遊客一旦被安排到某房間,在他預定住宿的期間內是不換房間的。為了簡化描述,定單上的開始住宿時間為距離現在的第幾天。例如,定單為(10,30,5)表示遊客要求使用10個房間,第30天開始連住5天。

輸入

第一行:t 表示有t組測試資料

每組測試資料第一行:n 表示定單數

每組測試資料接下來有n行,每行有三個整數 a b c 表示房間數,開始住宿時間和天數

1<=t<=100

1<=n<=10000 1<=a<=10 1<=b<=180 1<=c<=10

輸出輸出乙個整數,為滿足所有定單要求的最少房間數。

樣例輸入

1

33 10 4

4 9 3

3 12 6

樣例輸出

7
思路:一開始想著用結構體去實現,浪費了大量時間,後來發現了只要先將每筆訂單的開始到結束時間都用加上所用房間數,若時間重複,則房間累加,求出最大值即可

#include#includeusing namespace std;  

int s[10005];

int main()

for(i=1;i//錯誤**,我看了很就才發現的錯誤

int a[101][101];

int main(void)

for(i=1;i

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3描述

我們的樂樂同學對於網路可算得上是情有獨鍾,他有乙個計畫,那就是用無線網覆蓋鄭州大學。

現在學校給了他乙個機會,因此他要購買很多的無線路由。現在他正在部署某條大道的網路,而學校只允許把他的無線路由器放在路的正中間。我們預設這條大道是筆直的並且它在任何地方的寬度都一樣。並且所有的路由器的覆蓋面積是相同的。現在樂樂計算出這條大道的長和寬,以及路由器的覆蓋半徑,想請你幫忙,幫他計算出他最少要購買的路由器的數量。

注意:為了防止某種干擾,兩台無線路由之間的最小距離不能小於1公尺

圖1中為一條矩形的道路,中間的虛線代表中線。圖2為最小覆蓋的示意圖。

輸入

輸入包括多組測試資料

第一部分:乙個整數t(1<=t<=500)

第二部分:一共t行,每行包括三個整數l,d,r代表路的長,寬和覆蓋半徑(公尺)。

(1<=l<=100000),(1<=d<=50),(1<=r<=200)。

輸出對於每組測試資料輸出各佔一行,只有乙個整數,表示最少的路由器數量。如果不能覆蓋,請輸出impossible

樣例輸入

240 6 5

40 10 5

樣例輸出

5
impossible

思路:這道題只要將d,r,l,看成float輸出就會容易很多

#includeint main(void)

else

k=(int)n+1;

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

} }}

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:1描述

現在給你乙個16進製制的加減法的表示式,要求用8進製輸出表示式的結果。

輸入第一行輸入乙個正整數t(0

輸出每個表示式輸出佔一行,輸出表示式8進製的結果。

樣例輸入

3

29+4823

18be+6784

4ae1-3d6c

樣例輸出

44114

100102

6565

這道題放在這裡主要想提醒下c語言自帶十六進製制和八進位制轉化

#include//nyoj244

int main(void)

}

時間限制:

3000

ms  |  記憶體限制:

65535

kb難度:

2描述

給定兩個數m,n,其中m是乙個素數。

將n(0<=n<=10000)的階乘分解質因數,求其中有多少個m。

輸入第一行是乙個整數s(0

輸出輸出m的個數。

樣例輸入

2

100 5

16 2

樣例輸出

24

15

思路:可以將n的階層看作m*!(n/m),則可得到n/m個數,再看成m*!(n/m/m),直到nint main(void)

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

}}

水題系列 2

水題系列 prev 40 k倍區間 思路 這一題其實不算水題,是一題很巧妙的智商題,要想的到思路,其實題目要求就是要求區間和有幾個能被乙個數整除,但是題目的範圍特別大,兩個for迴圈必超時,所以得用巧方法,先求出字首和,然後將每乙個字首和對需要整除的數取餘,如果有兩個字首和對取餘的結果是一樣的,那麼...

poj入門水題8

1.2141 message decowding 解釋 又是字母翻譯題,輸入的第一行是小寫字母代表的是a z分別代表的是什麼字母,第二行是要翻譯的話,輸出翻譯的話的長度和第二行一樣。解法 前面有寫過,用陣列儲存對應字母,然後輸出。tricks 注意大寫字母的處理,我處理的方式是 找出大小寫之間的關係...

1059 C語言競賽(水題)

1059 c語言競賽 20 分 c 語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1 排名為素數的學生將贏得最好的獎品 小黃人玩偶!2 其他人將得到巧克力。給定比賽的最終排名以及一系列參...