第八屆藍橋杯5 7題

2021-10-10 12:12:32 字數 2170 閱讀 2527

/*

description

求1個整數的第k位數字有很多種方法。

以下的方法就是一種。

input

沒有輸入。

output

見上文描述。

*/// 求x用10進製表示時的數字長度

//思路:對遞迴的掌握和使用理解

#include

intlen

(int x)

// 取x的第k位數字

intf

(int x,

int k)

intmain()

/*

description

最大公共子串長度問題就是:

求兩個串的所有子串中能夠匹配上的最大長度是多少。

比如:「abcdkkk」 和 「baabcdadabc」,

可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。

下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。

請分析該解法的思路,並補全劃線部分缺失的**。

input

沒有輸入。

output

*///思路:如果掌握了kmp字串匹配演算法的話這道題能很快解出來,但是這道題有用了動態規劃的思想,如果我想知道前n個字串中的最大公共子串的長度,我們只需要知道前n-1個字串的最大公共子串的長度即可,然後比較第n的字元是否相等。

#include

#include

#define n 256

intf

(const

char

* s1,

const

char

* s2)}}

return max;

}int

main()

/*description

小明正在整理一批歷史文獻。這些歷史文獻**現了很多日期。小明知道這些日期都在2023年1月1日至2023年12月31日。

令小明頭疼的是,這些日期採用的格式非常不統一,有採用年/月/日的,有採用月/日/年的,還有採用日/月/年的。

更加麻煩的是,年份也都省略了前兩位,使得文獻上的乙個日期,存在很多可能的日期與其對應。

比如02/03/04,可能是2023年03月04日、2023年02月03日或2023年03月02日。

給出乙個文獻上的日期,你能幫助小明判斷有哪些可能的日期對其對應嗎?

input

乙個日期,格式是"aa/bb/cc"。 (0 <= a, b, c <= 9)

output

輸出若干個不相同的日期,每個日期一行,格式是"yyyy-mm-dd"。多個日期按從早到晚排列。

sample input 1

02/03/04

sample output 1

2002-03-04

2004-02-03

2004-03-02

*///思路:只需要把三種日期格式對應日期都列舉出來,然後排除非法日期和不在題目所述範圍的日期。最後去重排序就可以了(對set容器的使用)。

#include

#include

#include

using

namespace std;

void

i2s(

int i,string &s)

bool

isleap

(int year)

string f

(int a,

int b,

int c)

string _a,_b,_c;

//數字轉換為字串

i2s(a,_a)

;i2s

(b,_b)

;i2s

(c,_c)

;//格式化字串

if(_b.

length()

==1)_b=

"0"+_b;

if(_c.

length()

==1)_c=

"0"+_c;

return _a+

"-"+_b+

"-"+_c;

}int

main()

結語

第八屆藍橋杯第八題包子湊數

小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客想買11個...

藍橋杯第八屆決賽

精神狀態不好的時候怎麼寫 真的哭了,一堆sb錯誤 對於16進製制,我們使用字母a f來表示10及以上的數字。如法炮製,一直用到字母z,就可以表示36進製。36進製中,a表示10,z表示35,aa表示370 你能算出 many 表示的數字用10進製表示是多少嗎?請提交乙個整數,不要填寫任何多餘的內容 ...

第八屆藍橋杯分巧克力

題目 分巧克力 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是正方形,邊長是整數 2.大小相同 例如一塊...