jzoj6375 華靈 蝶妄想 結論題

2021-09-27 18:23:53 字數 994 閱讀 4348

n∗m

n*mn∗

m填((

(或者)

))。求乙個方案使得最多的行和列匹配。

我們先考慮n

nn或m

mm為奇數,那麼顯然奇數的肯定不必配,那麼就只需要考慮行或列即可。

若n

nn和m

mm都為偶數時

我們發現在邊邊的行列不可能都匹配上,那就讓他們無私奉獻一下,那麼除了這幾行就都可以匹配上

匹配數為n+m

−4n+m-4

n+m−4

當然我們也可以犧牲一般的行(或列)使得最邊邊的列(或行)匹配上,

匹配數為n2+

m−1\frac+m-1

2n​+m−

1 判斷一下哪種更優即可。

#include

#include

#include

using

namespace std;

int n,m;

bool v[

5001][

5001

],sw;

intmain()

}else

if(n&1)

putchar

('\n');

}}else

}else}if

(!sw)

}else}}

}

lintcode 637 檢查縮寫字

給定乙個非空字串 word 和縮寫 abbr,返回字串是否可以和給定的縮寫匹配。比如乙個 word 的字串僅包含以下有效縮寫 word 1ord w1rd wo1d wor1 2rd w2d wo2 1o1d 1or1 w1r1 1o2 2r1 3d w3 4 樣例 樣例 1 輸入 s intern...

51goc 637 可表示的數 題解

有n個整數從左到右排成一行,如果某個數等於它前面的2個數的和,就稱這個數是可以表示的數。問給定的數列裡有多少個數是可以表示的數。第一行1個整數n,表示數列有多少個整數。1 n 10000。第二行n個正整數,每個正整數不超過10000。乙個整數,有多少可表示的數。637.可表示的數 本題讓我們輸入乙個...

JZOJ 交換 模擬

給出字串s和字串t,現在你要把s的某乙個字元和t的某乙個字元交換,使得交換之後的s至少要有三個連續相同的字元,交換之後的t也要有三個連續相同的字元。問有多少種不同的交換方式。第一行,乙個字串s。s只含有 r g b 三種字元,長度不超過50,不小於3。而且s任意兩個相鄰的字元都不相同。第二行,乙個字...