藍橋杯2018初賽 倍數問題

2022-05-07 15:03:13 字數 2481 閱讀 9391

題目描述

眾所周知,小蔥同學擅長計算,尤其擅長計算乙個數是否是另外乙個數的倍數。

但小蔥只擅長兩個數的情況,當有很多個數之後就會比較苦惱。

現在小蔥給了你 n 個數,希望你從這 n 個數中找到三個數

使得這三個數的和是 k 的倍數,且這個和最大。資料保證一定有解。

輸入第一行包括 2 個正整數 n, k。

第二行 n 個正整數,代表給定的 n 個數。

1 <= n <= 10^5, 1 <= k <= 10^3,給定的 n 個數均不超過 10^8。

輸出輸出一行乙個整數代表所求的和。

樣例輸入

4 3

1 2 3 4

樣例輸出
9

分析:首先看這個題,從n個數中選三個數,且三個數相加的和是k的倍數,且滿足倍數中最大。
那麼這一看就是揹包空間3,選數滿足特殊要求,的01揹包吧。

現在分析怎麼才能構成k的倍數, 假設我們 k=3,要選乙個數4,要讓它構成3的倍數,然後要選另乙個數,
那麼另乙個數要讓它餘數為零,則要找餘數為(0 – x%k + k)%k的數,則推出兩個數相加要求餘數不變,則滿足(當前餘數 - x%k + k)%k的數。

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace std;78

const

int n = 1010;910

int n, m;

11 vector a[n];

12int f[4][n];//4代表當前選的數,n代表餘數

1314

int main()

15 24

25 memset(f, -9999, sizeof f);

26 f[0][0] = 0;

2728

for (int i = 0; i < m; i ++ )//列舉餘數揹包

29

42 }

43 }

4445 printf("%d\n", f[3][0]);//輸出我們要的餘數為零的數

4647

return 0;

48 }

49

題目描述

眾所周知,小蔥同學擅長計算,尤其擅長計算乙個數是否是另外乙個數的倍數。

但小蔥只擅長兩個數的情況,當有很多個數之後就會比較苦惱。

現在小蔥給了你 n 個數,希望你從這 n 個數中找到三個數

使得這三個數的和是 k 的倍數,且這個和最大。資料保證一定有解。

輸入第一行包括 2 個正整數 n, k。

第二行 n 個正整數,代表給定的 n 個數。

1 <= n <= 10^5, 1 <= k <= 10^3,給定的 n 個數均不超過 10^8。

輸出輸出一行乙個整數代表所求的和。

樣例輸入

4 3

1 2 3 4

樣例輸出
9

分析:首先看這個題,從n個數中選三個數,且三個數相加的和是k的倍數,且滿足倍數中最大。
那麼這一看就是揹包空間3,選數滿足特殊要求,的01揹包吧。

現在分析怎麼才能構成k的倍數, 假設我們 k=3,要選乙個數4,要讓它構成3的倍數,然後要選另乙個數,
那麼另乙個數要讓它餘數為零,則要找餘數為(0 – x%k + k)%k的數,則推出兩個數相加要求餘數不變,則滿足(當前餘數 - x%k + k)%k的數。

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace std;78

const

int n = 1010;910

int n, m;

11 vector a[n];

12int f[4][n];//4代表當前選的數,n代表餘數

1314

int main()

15 24

25 memset(f, -9999, sizeof f);

26 f[0][0] = 0;

2728

for (int i = 0; i < m; i ++ )//列舉餘數揹包

29

42 }

43 }

4445 printf("%d\n", f[3][0]);//輸出我們要的餘數為零的數

4647

return 0;

48 }

49

藍橋杯2018初賽 全球變暖

題目描述 你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 ...

藍橋杯2018初賽 航班時間

航班時間 題目描述 小h前往美國參加了藍橋杯國際賽。小h的女朋友發現小h上午十點出發,上午十二點到達美國,於是感嘆到 現在飛機飛得真快,兩小時就能到美國了 小h對超音速飛行感到十分恐懼。仔細觀察後發現飛機的起降時間都是當地時間。由於北京和美國東部有12小時時差,故飛機總共需要14小時的飛行時間。不久...

藍橋杯2018初賽 日誌統計

題目描述 小明維護著乙個程式設計師論壇。現在他收集了乙份 點讚 日誌,日誌共有n行。其中每一行的格式是 ts id。表示在ts時刻編號id的帖子收到乙個 贊 現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是 熱帖 具體來說,如果...