藍橋杯試題(2)

2021-09-30 00:15:18 字數 4039 閱讀 5496

給定n個整數a1, a2, … an。請你從中選出k個數,使其乘積最大。

請你求出最大的乘積,由於乘積可能超出整型範圍,你只需輸出乘積除以1000000009的餘數。

注意,如果x<0, 我們定義x除以1000000009的餘數是負(-x)除以1000000009的餘數。

即:0-((0-x) % 1000000009)

【輸入格式】

第一行包含兩個整數n和k。

以下n行每行乙個整數ai。

對於40%的資料,1 <= k <= n <= 100

對於60%的資料,1 <= k <= 1000

對於100%的資料,1 <= k <= n <= 100000 -100000 <= ai <= 100000

【輸出格式】

乙個整數,表示答案。

【輸入樣例】

5 3-100000

-10000

2100000

10000

【輸出樣例】

999100009

再例如:

【輸入樣例】

5 3-100000

-100000

-2-100000

-100000

【輸出樣例】

-999999829

資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

答案

#include

#include

int n,n1,n2,n3,k,k1,x=

1,max;

int a[10]

,a1[10]

;void

main()

n1=0;

while

(k1<=k-1)

n1++;}

a[n2]=0

; n1=0;

k1++

; x*

=max;}if

(x<

0) x=0-

((0-x)

%1000000009);

else x=x%

1000000009

;printf

("%d"

,x);

}

正確答案

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define n 100000

#define mod 1000000009

struct number

a[n];

bool cmp

(const number &x,

const number &y)

intmain()

else}if

(n==k)

else

else

}else

if(cnt==0)

//全是正數

else

nega=i;}}

else}}

if((cnt&1)

==0)//負數為偶數個,則直接取前k個數即可,把最後乙個正數乘上即可

ans=

(ans*a[posi]

.num)

%mod;

else

else

//找最大的正數

if(nega1!=-1

&&posi1!=-1

)break;}

if(nega1!=-1

&&posi1!=-1

)else

}else

if(posi1!=-1

)//後面只有正數了

else

//後面只有負數了 }}

} cout

}

你有一張某海域nxn畫素的**,".「表示海洋、」#"表示陸地,如下所示:

….##…

.##…

. …##.

…####.

…###.

…其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。

由於全球變暖導致了海面上公升,科學家**未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰(上下左右四個相鄰畫素中有海洋),它就會被淹沒。

例如上圖中的海域未來會變成如下樣子:……

………#……

…請你計算:依照科學家的**,**中有多少島嶼會被完全淹沒。

【輸入格式】

第一行包含乙個整數n。 (1 <= n <= 1000)

以下n行n列代表一張海域**。

**保證第1行、第1列、第n行、第n列的畫素都是海洋。

【輸出格式】

乙個整數表示答案。

【輸入樣例】7…

.##…

.##…

…##.

…####.

…###.

…【輸出樣例】

1資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

答案(抄的

#include

#include

char s[

1002][

1002];

voidzx(

long

int x,

long

int y)

void

zx2(

long

int x,

long

int y)

return;}

intmain()

}for

(i=1

;i<=n;i++

)//找尋多少塊島嶼;

for(j=

1;j<=n;j++)if

(s[i]

[j]==

'#')

for(i=

1;i<=n;i++

)//找尋那些塊島嶼不會被淹;

for(j=

1;j<=n;j++)if

(s[i]

[j]>=

'4'&&s[i]

[j]<=

'9')

for(i=

1;i<=n;i++

)s[1

][i]

++,s[n]

[i]++

,s[i][1

]++,s[i]

[n]++

;//處理邊界

for(i=

1;i<=n;i++

)//找尋剩多少塊島嶼;

for(j=

1;j<=n;j++)if

(s[i]

[j]==

'8')

printf

("%ld\n"

,ans-sum)

;return0;

}

藍橋杯試題2

假設 a b c d e 代表1 9不同的5個數字 注意是各不相同的數字,且不含0 能滿足形如 ab cde adb ce 這樣的算式一共有多少種呢?請你利用計算機的優勢尋找所有的可能,並回答不同算式的種類數。滿足乘法交換律的算式計為不同的種類,所以答案肯定是個偶數。package cn.text ...

試題 A 組隊 藍橋杯

試題 a 組隊 本題總分 5 分 問題描述 作為籃球隊教練,你需要從以下名單中選出 1 號位至 5 號位各一名球員,組成球隊的首發陣容。每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1 號位至 5 號位的評分之和最大可能是多少?如果你把以上文字複製到文字檔案中,請務必檢查複...

藍橋杯試題集

藍橋杯搜尋模擬暴力題 手鍊樣式 小明有3顆紅珊瑚,4顆白珊瑚,5顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?這道題自己還沒做出來,其實自己分析到了轉動翻轉是怎麼樣的,但是沒有想到可以 本身就可以來控制轉動和翻轉,然...