給定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顆黃瑪瑙。他想用它們串成一圈作為手鍊,送給女朋友。現在小明想知道 如果考慮手鍊可以隨意轉動或翻轉,一共可以有多少不同的組合樣式呢?這道題自己還沒做出來,其實自己分析到了轉動翻轉是怎麼樣的,但是沒有想到可以 本身就可以來控制轉動和翻轉,然...