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

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

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

样例对应的棋盘如下:

输入格式

输入第一行两个整数 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. 微软OOXML申请国际文档标准已获通过 中国投反对票
  2. 基础设施即代码:Terraform和AWS无服务器
  3. Selenium3自动化测试——1. 新建第一个Selenium自动化测试脚本
  4. 洛谷 P1149 火柴棒等式
  5. python好玩的代码_一行 Python 能实现什么丧心病狂的功能?
  6. Django模板(编写html代码
  7. java怎么确定数据在区间内_处理数据时,单元格内内容太多无法计数怎么破?...
  8. Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题
  9. 我的webpack路
  10. 简单理解计算机内存乱序
  11. Ubuntu 安装 配置 Mysql
  12. atitit.薄伽梵歌overview  attilax 读后感
  13. html5用户输入后自动显示用户名已重复_lt;inputgt; | HTML输入框标签
  14. 维修电工技师、高级技师技能实训考核装置
  15. 实时数仓入门训练营:Hologres 数据导入/导出实践
  16. Tomcat 端口被javaw.exe占用 有效解决方法
  17. 关于销售的成本和收入
  18. c#使用pop3服务器进行邮箱验证
  19. 系统集成项目管理工程师-法律法规与标准规范
  20. java计算机毕业设计校园环境保护监督系统源程序+mysql+系统+lw文档+远程调试

热门文章

  1. 网络流24题——2.太空飞行计划问题
  2. 树莓派 python 笔记
  3. Rust 中的基本数据类型——Rust语言基础06
  4. 易通眼镜店配镜记录档案管理软件 v4.04 绿色
  5. 互联网世界里的大忽悠,纯属娱乐
  6. 小程序 Taro UI去除SearchBar 搜索栏自带边框
  7. GWO-BiLSTM 双向长短期记忆网络 基于灰狼优化双向长短期记忆网络(GWO-BiLSTM)的回归预测或时序预测
  8. TRPO:信赖域策略优化
  9. 轻松项目管理02-项目启动
  10. 关于群控系统你知道多少?不知道的多着呢