計蒜之道初賽第一場 阿里的新遊戲

2021-08-01 09:40:15 字數 1260 閱讀 9906

阿里九遊開放平台近日上架了一款新的益智類遊戲——成三棋。成三棋是我國非常古老的乙個雙人棋類遊戲,其棋盤如下圖所示:

如果一條線段上的三個交叉點都被同一玩家的棋子佔據的話,則稱這條線段被該玩家 成三。現在,小紅和小明兩人在遊戲平台上下棋,其中小紅的棋子是黑色的。請你幫小紅計算他成三的線段數。

樣例對應的棋盤如下:

輸入格式

輸入第一行兩個整數 n,m(3 \le n, m \le 9)n,m(3≤n,m≤9),nn 表示小紅的棋子數,mm 表示小明的棋子數。

接下來 nn 行輸入小紅的棋子座標。

接下來 mm 行輸入小明的棋子座標。

輸入保證座標合法,並且棋子之間不重合。

輸出格式

輸出小紅成三的線段數。

樣例輸入

6 3

-1 0

-2 0

-3 0

-1 -1

-1 1

1 0

0 2

0 3

2 2

樣例輸出

題目大意:有乙個棋盤(圖見鏈結),給出棋子分布,問有多少個「成三」。

解題思路:各種姿勢應該都能過,直接列舉或排序判斷等等,**寫得醜。。。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

struct node

a[30],b[30];

bool cmp1(node u,node v)

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

int ans=0;

sort(a+1,a+n+1,cmp1);

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

}else

if(i+2

<=n&&a[i].y==a[i+2].y)

}sort(a+1,a+n+1,cmp2);

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

}else

if(i+2

<=n&&a[i].x==a[i+2].x)

}cout

0;}

2017 計蒜之道 初賽 第一場

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

2018 計蒜之道 初賽 第一場

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

2017計蒜之道 初賽 第一場

16種情況手動暴力即可 include define nmax 7 using namespace std int mp nmax nmax int n,m int cnt 0 void ge void check if mp 0 0 1 mp 3 0 1 mp 6 0 1 if mp 0 6 1 ...