Butterfly 列舉 暴力

2021-09-28 21:08:20 字數 1484 閱讀 7375

原題

這裡有點暴力的感覺,但是有乙個卡資料,所以這裡加了一點點優化就ac了。

先得到每乙個點的,以此點向左上角』zs『走,右上角『ys』走,左下角『zx』走,右下角『yx』走分別可以走多少個「x」,

再進行判讀以這個點為中心的左右兩邊『l』是否是大於等於本應該有的長度。

這裡有乙個小優化,就是求出最大的『l』,每一次從t和l最小的開始向下列舉,防止t很大,而l很小,這種特殊情況。

#include

using

namespace std;

const

int mx=

2e3+9;

int n,m,yx[mx]

[mx]

,zx[mx]

[mx]

,ys[mx]

[mx]

,zs[mx]

[mx]

,l[mx]

[mx]

;char s[mx]

[mx]

;int

main()

int tt=0;

for(

int i=

1; i<=n ; i++

) tt=

max(l[i]

[j],tt)

;// 求出l的最大}}

for(

int i=

1; i<=n ; i++

)for

(int j=m ; j>=

1; j--)if

( s[i]

[j]==

'x')

zx[i]

[j]=zx[i-1]

[j+1]+

1;for(

int i=n ; i>=

1; i--

)for

(int j=

1; j<=m ; j++)if

( s[i]

[j]==

'x')

ys[i]

[j]=ys[i+1]

[j-1]+

1;for(

int i=n ; i>=

1; i--

)for

(int j=m ; j>=

1; j--)if

( s[i]

[j]==

'x')

zs[i]

[j]=zs[i+1]

[j+1]+

1;int ans=0;

for(

int i=

1; i<=n ; i++

)for

(int j=

1; j<=m ; j++)if

( s[i]

[j]==

'x')

}printf

("%d"

,max

(ans*2-

1,0)

);return0;

}

Wythoff Game(暴力列舉)

wythoff game 時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 最近 zkc同學在學博弈,學到了乙個偉大的博弈問題 威佐夫博弈。相信大家都學過了吧?沒學過?沒問題。我將要為你講述一下這個偉大的博弈問題。有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲...

10 暴力列舉

暴力是一種有著特殊美學意義的事物,對於許多東西,在需要進行計算的時候,將其所有的組合給排列出來也是一種很好的選擇,今天的題目,是乙個希望計算火柴可以擺出的等式的個數 題目如下 挺麻煩的地方在於,每乙個數需要的火柴數其實是沒有規律的,在想要得到乙個等式的話,就要有可以將所有火柴轉換成數字的乙個陣列 於...

暴力列舉 烤雞

現在,hanke 想要知道,如果給你乙個美味程度 n 請輸出這 10 種配料的所有搭配方案。乙個正整數 n,表示美味程度。第一行,方案總數。第二行至結束,10 個數,表示每種配料所放的質量,按字典序排列。如果沒有符合要求的方法,就只要在第一行輸出乙個 0。輸入樣例 輸出樣例 101 1 1 1 1 ...