2020 計蒜之道 預賽 第一場 A B

2022-05-26 21:03:11 字數 1743 閱讀 1891

列舉每個空格點的位置,然後判水平垂直以及兩條對角線即可。判的時候可以沿那個方向往兩邊走,有連續棋子多於4個的話就獲勝。

#include using namespace std;

int n = 24;

char mmap[30][30];

char go;

struct point

;vectorv;

bool tran(int x, int y)

ny = y + 1;

while(ny <= n && mmap[nx][ny] == go)

if(cnt >= 4) return 1;

else return 0;

}bool vertical(int x, int y)

nx = x + 1;

while(nx <= n && mmap[nx][ny] == go)

if(cnt >= 4) return 1;

else return 0;

}bool maindiagonal(int x, int y)

nx = x + 1, ny = y + 1;

while(nx <= n && ny <= n && mmap[nx][ny] == go)

if(cnt >= 4) return 1;

else return 0;

}bool subdiagonal(int x, int y)

nx = x + 1, ny = y - 1;

while(nx <= n && ny >= 0 && mmap[nx][ny] == go)

cout << cnt << endl;

if(cnt >= 4) return 1;

else return 0;

}int main()

int w = 0, b = 0;

for(int i = 0; i < 25; i++) }

if(w == b)//輪到黑棋走

else go = 'o';

for(int i = 0; i < 25; i++)

); }

}} }

if(!v.size()) cout << "tie" << endl;

else

for(int i = 0; i < v.size(); i++) cout << v[i].x << ' ' << v[i].y << endl;

return 0;

}

沒在區間的直接染w和b較大的那個顏色,對於每個區間,由於彼此互不相交,直接比較「染同乙個顏色然後獲得bouns」以及「每個元素染w和b較大那個」然後取最大值累加到答案即可。

#include #define int long long//!!!!!

using namespace std;

int n, m, w[300005], b[300005], t[300005], l[300005], r[300005], c[300005];

bool seg[300005];

long long ans = 0;

signed main()

for(int i = 1; i <= n; i++)

for(int i = 1; i <= m; i++)

if(t[i] == 1)

else

}cout << ans << endl;

}

2020 計蒜之道 預賽 第一場

思路 模擬題 考慮全面即可 第一步 判斷先手和後手,兩棋子相差一定是 1,當相等時,黑子x先走。第二步 暴力判斷每個空白處,填充相應棋子,能不能湊齊五子連珠。橫,豎,撇,捺 說明 黑子先走,棋盤上只會出現黑子 白子的情況 當時只考慮黑子先走,一首涼涼送給自己 includechar map 26 2...

2017 計蒜之道 初賽 第一場

阿里的新遊戲 阿里九遊開放平台近日上架了一款新的益智類遊戲 成三棋。成三棋是我國非常古老的乙個雙人棋類遊戲,其棋盤如下圖所示 如果一條線段上的三個交叉點都被同一玩家的棋子佔據的話,則稱這條線段被該玩家成三。現在,小紅和小明兩人在遊戲平台上下棋,其中小紅的棋子是黑色的。請你幫小紅計算他成三的線段數。樣...

2018 計蒜之道 初賽 第一場

題解 典型的二分 1 pragma warning disable 4996 2 include3 include4 include 5 include6 include7 include8 include9 define ll long long 10using namespace std 111...