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...