博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
幸运男孩--点的hash
阅读量:4541 次
发布时间:2019-06-08

本文共 1490 字,大约阅读时间需要 4 分钟。

 

幸运男孩
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 83(16 users) Total Accepted: 26(14 users) Rating:  Special Judge: No
Description
 最近,Lur挺幸运的。并且因为他曾经创作了—幸运男孩 电脑游戏而成为学校最聪明的男生。这个游戏适合于两个人玩家 (假设分别称呼为 a,b) 在一个二维的平面上玩。在这个游戏中,平面上有n个不同的点。每次一个人可以从这个平面上去掉一个或者是在同一条直线上的任意多个点。第一个一次去掉多于二个点的选手赢得这场游戏。否则的话能够去掉平面上最后一个点的选手也可以赢得这场游戏。你可以假定这两个玩家都是足够聪明的,并且他们的每一个决定都是当前最优的。赢得这场游戏的选手将被授予“幸运男孩”的称号。
  给定n个点,你能告诉我谁将成为幸运男孩吗?注意,选手a总是首先开始游戏的。
Input
每组测试样例的第一行是一个整数n(0 < n <= 1000),后面的n行每行包含两个整数 x,y(0 <= x,y <= 10^8),描述平面上的每个点,输入直到文件末尾。
Output
如果a赢了,输出"a is the lucky boy.",否则的话,输出"b is the lucky boy."。每组测试数据的输出占一行。
Sample Input
3
0 0
1 1
2 2
3
0 0
1 1
2 3
Sample Output
a is the lucky boy.
b is the lucky boy.

代码:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int maxn=1005; 9 10 typedef pair
PII;11 12 PII pt[maxn];13 14 int gcd(int a,int b)15 {16 while(b!=0)17 {18 int c=a%b;19 a=b;20 b=c;21 }22 return a;23 }24 25 PII get_vec(int i,int j)26 {27 int x=abs(pt[j].first-pt[i].first);28 int y=abs(pt[j].second-pt[i].second);29 if(x==0)30 return make_pair(0,1);31 if(y==0)32 return make_pair(0,1);33 int g=gcd(x,y);34 return make_pair(x/g,y/g);35 }36 37 int main()38 {39 int n;40 //freopen("aa.txt","r",stdin);41 while(scanf("%d",&n)!=EOF)42 {43 for(int i=0;i
mp;55 for(int j=i+1;j
View Code

 

转载于:https://www.cnblogs.com/zhanzhao/p/3608734.html

你可能感兴趣的文章
Android笔记(十七) Android中的Service
查看>>
第一次作业总结
查看>>
Mysql语句查询优化
查看>>
UVA-1626 Brackets sequence (简单区间DP)
查看>>
java文件课后动手动脑
查看>>
Unicode 与 utf8 utf16 utf32的关系
查看>>
洛谷 P3956 棋盘 解题报告
查看>>
北京地区表
查看>>
【Docker学习之四】搭建开发环境的构思
查看>>
IIS 发布网站 ashx无法访问
查看>>
Linux 各文件夹作用
查看>>
MySQL基础第二课
查看>>
笔试、面试重点总结:算法基础、数据结构
查看>>
深入C#数据类型
查看>>
请保持心情快乐,请保持情绪稳定
查看>>
雷观(序)
查看>>
2014年工作中遇到的20个问题:141-160
查看>>
大学生活--第5篇--物以类聚,人以群分
查看>>
mybatis-防止sql注入
查看>>
cdh5 离线安装问题
查看>>