好多魚 全國模擬(一)

2022-08-24 01:24:12 字數 2022 閱讀 5337

[程式設計題] 好多魚!

時間限制:1秒

空間限制:32768k

牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize[i] (1 ≤ i ≤ n,均為正整數),牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍(包括2倍大小和10倍大小),魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要保證:

1、放進去的魚是安全的,不會被其他魚吃掉

2、這條魚放進去也不能吃掉其他魚

魚缸裡面已經存在的魚已經相處了很久,不考慮他們互相捕食。現在知道新放入魚的大小範圍[minsize,maxsize](考慮魚的大小都是整數表示),牛牛想知道有多少種大小的魚可以放入這個魚缸。 

輸入描述:

輸入資料報括3行. 第一行為新放入魚的尺寸範圍minsize,maxsize(1 ≤ minsize,maxsize ≤ 1000),以空格分隔。

第二行為魚缸裡面已經有魚的數量n(1 ≤ n ≤ 50)

第三行為已經有的魚的大小fishsize[i](1 ≤ fishsize[i] ≤ 1000),以空格分隔。

輸出描述:

輸出有多少種大小的魚可以放入這個魚缸。考慮魚的大小都是整數表示

輸入例子:

1 12 1 1

輸出例子:

3解題思路:本題想法是採用set,池子裡的每條魚的2-10倍,與1/10-1/2的整數存入set中,然後對於給定魚的大小範圍,找是否在set中如果不在,count++

注意事項:對於村1/10-1/2時,對於1/10,如果算出的為小數,則存入比它大的第乙個整數

對於1/2,算出為小數,存比它小的第乙個整數即存整型的1/2*a[i]即可,所以只有1/10需要特別處理一下

1 #include 2 #include 

3using

namespace

std;45

intmain()618

sets;

19//

存所有魚的2-10倍值

20for(int i=0;i)

2126}27

//存所有魚的1/10 - 1/2,例如a[i]=22存入的就是3-11

28//

例如a[i] = 3 存入的為1

29//

因此對於a[i]/10存入比它算的結果的小數大的最小整數

30//

對於a[i]/2存入的是比它算的結果的小數小的最大的整數

31for(int i=0;i)

3239

for(;j<=a[i]/2;j++)

4043}44

int count = 0;45

set::iterator it;

46//

for(it = s.begin(); it != s.end(); it++)

47//

50//

cout<51

for(int i= minsize;i<=maxsize;i++)

5258

5960

}61 cout6263

}64 }

網上參考**思路:用標誌位flag的值來存是否在範圍內,如果在flag = false

對於輸入魚的範圍,判斷它是否在池子中每條魚2-10倍和1/10-1/2倍之間,如果在置false,且跳出與池子中魚判斷的迴圈。

1 #include"

stdio.h"2

intmain()313

int num=0;14

for(int i=minn; i<=maxx; i++)

1525

else

if(i>=1.0/10*ai[j] && i<=1.0/2*ai[j])

2631}32

if(sign)

33 num++;34}

35 printf("

%d\n

",num);

36return0;

37 }

牛客網 好多魚

牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要...

演算法題 好多魚(牛客網)

程式設計題 好多魚!牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,...

超級素數冪 全國模擬(一)

程式設計題 超級素數冪 時間限制 1秒 空間限制 32768k 如果乙個數字能表示為p q 表示冪運算 且p為乙個素數,q為大於1的正整數就稱這個數叫做超級素數冪。現在給出乙個正整數n,如果n是乙個超級素數冪需要找出對應的p,q。輸入描述 輸入乙個正整數n 2 n 10 18 輸出描述 如果n是乙個...