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任意兩個相鄰的字元都不相同。第二行,乙個字...