10682 deathgod想知道的事(数论)
10682 deathgod想知道的事
该题有题解
时间限制:1000MS 内存限制:65535K
提交次数:265 通过次数:14
题型: 编程题 语言: G++;GCC
Description
一只蚂蚁从衣服地图上爬过留下痕迹,deathgod看到后在地图上建了个坐标,将蚂蚁留下的痕迹分成多条线段首位相连而成,
且那些线段的端点都是整数点,现在他想知道这只蚂蚁经过了坐标中多少个整数点。
输入格式
第一行输入一个整数t,表示case数;对于每个case,第一行输入一个整数n(0<=n<=10),代表蚂蚁经过的线段的数量,
接下来n+1行,每行有两个整数x,y(-10000<=x,y<=10000),表示蚂蚁依次经过线段的端点。
输出格式
每个case输出一行,蚂蚁所经过的整数点数量。
输入样例
1
3
0 0
0 4
2 2
2 0
输出样例
9
题解
计算两个点之前有多少个整数点,只要算gcd(abs(x1-x2),abs(y1-y2))就行了。
然后利用这个算出这两个点之间整数点的坐标。
然后丢进set里面,去重。
最后输出set的个数。
具体看代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <set> using namespace std;
int gcd(int a ,int b)
{
return b>?gcd(b,a%b):a;
}
int main()
{
int T;
scanf("%d",&T);
while (T--)
{
set <pair<int,int> > S;
int n;
scanf("%d",&n);
int a,b,c,d;
if (n)
{
scanf("%d%d",&a,&b);
S.insert(make_pair(a,b));
}
for (int i=;i<n;i++)
{
scanf("%d%d",&c,&d);
int GCD=gcd(abs(c-a),abs(d-b));
int len1=,len2=;
if (GCD)
len1=(c-a)/GCD,len2=(d-b)/GCD;
for (int j=;j<=GCD;j++)
{
S.insert(make_pair(a+j*len1,b+j*len2));
//cout<<"经过的点 :"<<a+j*len1<<" "<<b+j*len2<<endl;
}
a=c,b=d;
}
printf("%d\n",S.size());
}
return ;
}
10682 deathgod想知道的事(数论)的更多相关文章
- 终于想明白一些事,关于NAS
一直以来想搞好一部NAS存储小孩的视频和照片,一直纠结用什么硬件,硬件解决后虽然不甚满意,不过无论怎么样都算投入巨资(超过7千……)组装完毕,然后就一直纠结用什么NAS系统,终于下定决心使用了OMV, ...
- 夜黑风高的夜晚用SQL语句做了一些想做的事·······
IT这条漫漫长路注定是孤独的,陪伴我们的只有那些不知冷暖的代码语句和被手指敲打的磨掉了键上的标识的键盘. 之所以可以继续坚持下去,是因为心中有一份永不熄灭的激情. 成功的路上让我们为自己带盐 ...
- CLR中你想知道的事
CLR是什么? CLR 公共语言运行时,是一个可由多个语言共同使用的运行环境,核心(内存管理,程序集加载,安全性,异常处理和多线程) Visual Studio是一种编译器,编译器也可称为语法检查器和 ...
- EF-CodeFirst-3搞事
本文学习旺杰兄的 CodeFirst 系列教程而写.尽量摆脱之前的影子写出自己的理解 表间关系.级联删除 简单玩法已经走通了,但是我就是想搞点事出来.今天来搞搞表间关系和级联删除 表间关系 毫无疑问在 ...
- 小课堂week17 编程范式巡礼第二季 并发那些事
编程范式巡礼第二季 并发那些事 继续上周的编程范式话题,今天想聊一下并发范式. 并发也算一种范式? 真正的并发式编程,绝不只是调用线程API或使用synchronized.lock之类的关键字那么简单 ...
- NOIP2018 20天训练
Day 0 2018.10.20 其实写的时候已经是Day 1了--(凌晨两点) 终于停课了,爽啊 get树状数组+线段树(延迟标记) 洛谷:提高组所有nlogn模板+每日一道搜索题(基本的图的遍历题 ...
- CSP-S乱搞记
还有一年的时间,没人能挡住我前进的脚步 以后不打算写游记了,补完这篇再写就等退役吧,不太想传播什么负能量,走这条路,希望能得到自己想要的东西 Day-n 上了一个月文化课,班主任突然催我搞竞赛??? ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- JavaScript 字符串实用常操纪要
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
随机推荐
- 世界之窗(TheWorld)浏览器 3.6.1.0 简体中文绿色版
软件名称: 世界之窗(TheWorld)浏览器 3.6.1.0 简体中文绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小 ...
- 微信内置浏览器私有接口WeixinJSBridge介绍(转)
这篇文章主要介绍了微信内置浏览器私有接口WeixinJSBridge介绍,本文讲解了发送给好友.分享函数.隐藏工具栏.隐藏三个点按钮等功能,需要的朋友可以参考下 微信网页进入,右上角有三个小点,没错, ...
- sublime插件(配合nodejs环境)
一.首先先安装nodejs,从nodejs官网下载 www.nodejs.cn 下载完成后直接安装,选择npm package版本的进行安装,安装完成后无需配置环境变量,nodejs会自动进行配置. ...
- Oracle SQL自带函数整理
数字函数 abs(n):用于返回数字n的绝对值 ceil(n):返回大于等于数字n的最小整数 floor(n):返回小于等于数字n的最大整数 mod(m,n):返回m/n数字相除后的余数,如果n=0, ...
- C#发送邮件类
一.定义邮件发送类 /// <summary> /// 发送邮件 /// </summary> public class MailHelper { #region 私有变量 p ...
- doT模板
框架源码地址 https://github.com/olado/doT <div id="main"> <script id="banner-templ ...
- 【.NET】字符串处理
类名:DealString /// 1.截取字符串,最后加3个小数点 /// 2.获得指定Url的参数的string类型值 /// 3.判断数据类型 /// 4.过滤JS标记 /// 5.获取Chec ...
- webservice底层使用Socket进行网络调用
服务端代码(其实tomcat的原理也是这样): 客户端代码:
- BeautifulSoup抓取列表页锚文本
素闻BeautifulSoup提取效率低,艾玛,第一印象果然是很要命的,反正比Re 和 Lxml 是要慢的,不过就无奈Re的正则折腾来折腾去,没写出来,Lxml 的 Xpath 又用得不好. 不过就这 ...
- 小程序--改变子级别页面导航栏信息 / navigationBarTitleText
微信小程序在公共文件app.json中设置了导航栏相关样式如下: 其中 navigationBarTitleText 为设置导航栏名称,若是想子级页面和父页面的header页面不同,则在子级文件中新 ...