劉汝佳書 習題3 11 UVA1588

2021-09-13 19:02:12 字數 1196 閱讀 9873

uva刷題方法:

【2019.3.26】

又是一道看起來很簡單,但卻wa的題

注意:最後一列的末尾沒有換行符,需要判斷eof

思路:a陣列存上面的長條,b陣列存下面的長條

設a陣列的長度為i

那麼b陣列為:i個0 + 下面的長條的高度 + 剩下全是0

比如下面這個例子:

a:1121

b:000021210000

然後讓a每次右移一位(令k為右移次數,k=1):

a:. 1121

b:000021210000

讓a和b對應元素相加,得到下面這一列:

a+b:011231210000

如果所有位都小於等於3,證明這個位置可以,記錄一下現在的非零長度len=7

然後再讓a右移一位(k=2):

a:. . 1121

b:000021210000

a+b:001142210000

可以看到有一位大於3,不滿足條件

一直右移,遇到滿足條件的,記錄現在的非零長度len,然後minlen=min(minlen, len)

就這麼一直右移下去,直到a移出b的非零範圍(令j指示b的非零範圍,那麼此時k=j=8):

a:. . . . . . . . 1121

b:000021210000

這時候結束迴圈,輸出上述過程中記錄到的最小長度

#include

#include

using

namespace std;

int a[

110]

;//上面的長條

int b[

330]

;//下面的長條,大概開到3倍長度

intmain()

}if(flag)

//如果每一位都小於等於3,就更新最小長度

minlen=

min(minlen,

max(k+i,j)

-min

(k,i));

//cout<}

cout<}return0;

}

今天翻別人的部落格,發現有個學長考研去了浙大,

簡歷上,各種程式設計競賽高分,一篇一作**,十個軟著,

自己乙個破題在這憋半天,感覺好鬱悶,

不知道將來何去何從……

劉汝佳書 習題3 4 UVA455

uva刷題方法 2019.3.24 這道題注意pe錯誤 最後乙個輸出後沒有換行 貌似最後多了換行是wa錯誤,懵逼 三層迴圈 最外層迴圈是 i從1到strlen s 第二層迴圈是 j從第0個週期的第1個數字到第0個週期的最後乙個數字 最內層迴圈是 k從第0個週期到最後乙個週期 思路是 遍歷每一種週期數...

劉汝佳書 習題3 5 UVA227

uva刷題方法 2019.3.24 這題的格式真的是 折磨死人了 1 輸入格式 5 5的字元矩陣,每行5個字元 字母或空格 每行末尾有0到若干無用空格,每行最後有乙個換行符 下面這個例子裡,只有第乙個空格在5 5的矩陣裡應該儲存,剩下倆空格都是每行末尾的無用字元,應該丟棄 例子 abcd空 fghi...

劉汝佳書 習題3 10 UVA1587

uva刷題方法 2019.3.26 本來覺得這題好簡單,結果是wa,發現思路全錯,做了將近兩個小時,最後ac的 也不好看,鬱悶 思路 每行的輸入用a和b儲存,保證a include include include using namespace std int num 6 2 intmain for...