第一次wa 是,沒有認真讀題, 忽略了最少的字數!!找最少的被破壞字數
problem description
一天,淘氣的tom不小心將水潑到了他哥哥jerry剛完成的作文上。原本嶄新的作文紙頓時變得皺巴巴的,更糟糕的是由於水的關係,許多字都看不清了。可憐的tom知道他闖下大禍了,等jerry回來一定少不了一頓修理。現在tom只想知道jerry的作文被「破壞」了多少。
jerry用方格紙來寫作文,每行有l個格仔。(圖1顯示的是l = 10時的一篇作文,』x』表示該格有字,該文有三個段落)。
圖2顯示的是浸水後的作文 ,『o』表示這個位置上的文字已經被破壞。可是tom並不知道原先哪些格仔有文字,哪些沒有,他唯一知道的是原文章分為m個段落,並且每個段落另起一行,空兩格開頭,段落內部沒有空格(注意:任何一行只要開頭的兩個格仔沒有文字就可能是乙個新段落的開始,例如圖2中可能有4個段落)。
tom想知道至少有多少個字被破壞了,你能告訴他嗎?
input
測試資料有多組。每組測試資料的第一行有三個整數:n(作文的行數1 ≤ n ≤ 10000),l(作文紙每行的格仔數10 ≤ l ≤ 100),m(原文的段落數1 ≤ m ≤ 20),用空格分開。
接下來是乙個n × l的位矩陣(a
ij)(相鄰兩個數由空格分開),表示被破壞後的作文。其中aij取0時表示第i行第j列沒有文字(或者是看不清了),取1時表示有文字。你可以假定:每行至少有乙個1,並且所有資料都是合法的。
output
對於每組測試輸出一行,乙個整數,表示至少有多少文字被破壞。
sample input
10 10 3sample output0 0 0 1 1 1 0 1 1 0
1 1 0 0 0 1 1 1 0 0
0 0 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 1 1 0 0 0
1 1 0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 0
19
#include#include#includeusing std::sort;
int a[10001][101];
int cmp( int a, int b )
int main()
int flag = 0;
for( i = 0; i < n-1; i ++ )
}} for( j = l-1; j >= 0; j -- ) //要注意最後一行的0不需要統計進陣列b中,直接減去
if( a[i][j] == 0 )
--ans;
else break;
sort( b, b+flag+1, cmp );
for( i = 0; i < m-1; i ++ )
ans -=b[i];
printf( "%d\n", ans-m*2 );
} return 0;
}
c 實驗1 7 3 輸出閏年
7 3 輸出閏年 15 分 輸出21世紀中截止某個年份以來的所有閏年年份。注意 閏年的判別條件是該年年份能被4整除但不能被100整除 或者能被400整除。輸入格式 輸入在一行中給出21世紀的某個截止年份。輸出格式 逐行輸出滿足條件的所有閏年年份,即每個年份佔一行。輸入若非21世紀的年份則輸出 inv...
AcWing 173 矩陣距離
題目描述 給定乙個n行m列的01矩陣a,a i j 與 a k l 之間的曼哈頓距離定義為 dist a i j a k l i k j l 輸出乙個n行m列的整數矩陣b,其中 b i j min1 x n,1 y m,a x y 1dist a i j a x y 輸入格式 第一行兩個整數n,m。...
173鍊錶插入排序
樣例 given 1 3 2 0 null,return 0 1 2 3 null 注意單鏈表插入排序和陣列插入排序的不同 陣列插入排序是從排好序的部分的最後乙個節點往前找,找到第乙個比它小的數,然後插到其後面 而單鏈表只能從前往後遍歷,找到第乙個比當前節點大的值結束,因此在遍歷已經排好序的鍊錶部分...