hdoj 1735 字數統計 貪心

2021-06-22 07:45:54 字數 1763 閱讀 8697

第一次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 3

0 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

sample output

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 注意單鏈表插入排序和陣列插入排序的不同 陣列插入排序是從排好序的部分的最後乙個節點往前找,找到第乙個比它小的數,然後插到其後面 而單鏈表只能從前往後遍歷,找到第乙個比當前節點大的值結束,因此在遍歷已經排好序的鍊錶部分...