阿里九游开放平台近日上架了一款新的益智类游戏——成三棋。成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示:

成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子。我们可以用坐标系来描述棋盘:

如果一条线段上的三个交叉点都被同一玩家的棋子占据的话,则称这条线段被该玩家 成三。现在,小红和小明两人在游戏平台上下棋,其中小红的棋子是黑色的。请你帮小红计算他成三的线段数。

样例对应的棋盘如下:

输入格式

输入第一行两个整数 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
样例输出

2
我的思路比较简单,先把输入的数据存放在二维数组a[10][2]里,然后分别以行、列的方式遍历该数组,对该数组中横、纵坐标相同的点进行分类,-3到3的7个数字,num[7]对在每一条纵线和横线上的点进行统计,从而知道每一个线段方向上有几个点,b[7][6]则是记录横坐标或者纵坐标相同的点记录另一维的数字,以便之后判断是否在一条线段上。
在judge函数里,如果一个线段方向上有超过3个点,若这个数字不是0,那么肯定只有三个点,而且这三个点在一条线段上(从图里可以看出)。如果这个数字是0,可以对b[i][]里存的数字进行排序,先从小到大,如果前三个数字分别是-3,-2,-1,那么肯定符合要求,再从大到小排序,如果前三个数字分别是3,2,1,也是符合要求的。之所以进行两次排序判断,是因为可能有6个点,在两条线段上。

代码如下:

#include <iostream>
#include <algorithm>
using namespace std;int Point_num,useless,a[10][2]={-99},b[7][6]={-99},so=0;
int num[7]={0};
void judge()
{int *p,i;   for(i=0;i<7;i++){if(num[i]>2){p=b[i];if(i!=3)so++;else{sort(p,p+num[i],less<int>());if(p[0]==-3 && p[1]==-2 &&p[2]==-1)so++;sort(p,p+num[i],greater<int>());if(p[0]==3 && p[1]==2 &&p[2]==1)so++;}   }}}
void d(int c)
{int i,j;for(i=0;i<7;i++){num[i]=0;for(j=0;j<6;j++)b[i][j]=-99;}for(i=0;i<Point_num;i++){j=a[i][c]+3;b[j][num[j]++]=a[i][1-c];}
}
int main(){int i,j,k;cin>>Point_num>>useless;for(i=0;i<Point_num;i++)cin>>a[i][0]>>a[i][1];for(i=0;i<useless;i++)cin>>j>>k;for(i=0;i<2;i++){d(i);judge();    }cout<<so;
} 

计蒜客/阿里的新游戏相关推荐

  1. 计蒜客-百度的年会游戏(模拟)

    计蒜客-5.21-第二场比赛 A题 百度年会盛况空前,每个部门的年会活动也是非常有趣. 某部门的年会中进行了一个有趣的游戏:一张方桌上有四边,每边可以坐一人, 每人面前摆放一排长方形木块.我们一次给四 ...

  2. 计蒜客 百度的年会游戏【java】

    百度年会盛况空前,每个部门的年会活动也是非常有趣.某部门的年会中进行了一个有趣的游戏:一张方桌上有四边,每边可以坐一人,每人面前摆放一排长方形木块.我们一次给四边标号,分别为玩家 1.2.3.4(详见 ...

  3. 计蒜之道初赛第一场-阿里的新游戏

    阿里的新游戏 阿里九游开放平台近日上架了一款新的益智类游戏--成三棋.成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示: 成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子.我们可以用坐标 ...

  4. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...

    在人才招聘领域存在这样一个怪圈,高校每年都说是最难就业年.人才过剩,而对于企业HR来说永远都招不到称心如意的人才.这个怪圈在"计蒜客"创始人俞昊然看来,主要是因为当今高校的教学资源 ...

  5. 计蒜客题解——T1213:拯救行动

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1213. 题目描述 公主被恶人抓走,被关押在牢房的某个地方.牢房用 N×M(N,M≤200) 的矩阵来表 ...

  6. 坑!计蒜客——乳草的侵占

    计蒜客--乳草的侵占(BFS) BFS一直写不会,可能是多加了个队列,写起来不是太容易.不过最近还是稍微入门了BFS,跟DFS差别不太大,还是由三个部分组成--出口.标记.枚举. DFS的主要的思想就 ...

  7. 计蒜客 - 新年礼物

    计蒜客 新年礼物 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,新年礼物有很多份,怎么分配这些礼物呢?蒜厂 BOSS 打算让大家玩一个游戏. 蒜头们可以从抽奖箱里抽出 NNN 个字符串,第 iii ...

  8. 计蒜客 - T1096 - 石头剪刀布

    计蒜客 - T1096 - 石头剪刀布 题目 石头剪刀布是常见的猜拳游戏.石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负. 一天,小 A 和小B正好在玩石头剪刀布.已知他们的出拳都是有 ...

  9. 计蒜客2020蓝桥杯大学A组模拟赛题解

    计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...

最新文章

  1. python-----利用filecmp删除重复文件
  2. 空洞卷积(Dilated Convolution):有之以为利,无之以为用
  3. 窗口属性 客户矩形_航空公司客户价值分析
  4. Win平台使用cmake工具生成sln工程示例
  5. 解析:IEEE批准首个联邦机器学习框架标准
  6. Sharding-JDBC(二)2.0.3版本实践
  7. 在2019年6月Teams Community Call上分享的Teams app基础架构视频
  8. AliExpress智能营销引擎大揭秘 - AnalyticDB如何做到快准狠省
  9. python 去除水印_基于python的图片修复程序(实现水印去除)
  10. 你的名字比我生命更重要
  11. 2020FME博客大赛——FME在农村地籍调查项目中应用
  12. Mac/Win Photoshop CC 2018(V19.0)安装破解激活图文教程(附破解补丁)
  13. python输入年月日输出年月日_python时序分析
  14. 单位载质量能量消耗量_Ekg指标计算案例之电动物流车
  15. 思科ccie认证网络工程师——MAC地址认证和MAC地址旁路认证解析必看
  16. 通过Python获取拉钩招聘网站的公司详细地址
  17. Android Studio 4.2Previw版本编译错误提示Disable offline mode and rerun the build
  18. PDF如何修改编辑文字?两种简单的方法分享给大家
  19. Ext.TabPanel 各属性一览
  20. 技术人员的赚钱之道3:打工思维向创业思维的转变

热门文章

  1. python-docx 设置表格边框
  2. 【计算机网络原理·实验·第八章】SYN攻击Land攻击
  3. 阿里又搞黄了一个APP……万千宅男的梦破碎了!
  4. 降采样和上采样(图像)
  5. 实时聊天APP(websocket+hybridAPP)
  6. 微信js微信域名检测接口该如何实现
  7. 企微整合,钉钉进化,飞书抢占toB下半场
  8. 人工智能与机器学习——人脸表情识别
  9. Ubuntu添加/删除PPA源
  10. QQ空间获取指定QQ号信息接口