D. Vasya and Triangle
传送门
[http://codeforces.com/contest/1030/problem/D]
题意
在第一象限,x,y得坐标上限是n,m,再给你个k,让你找3个整数点,使得围成面积等于(n*m)/k,没有输出NO
分析
有解析几何,由3个点坐标求面积公式S=(1/2)|(x2-x1)(y3-y1)-(x3-x1)(y2-y1)|=(nm)/k
所以2(nm)/k为整数时必有解,不然没有。
假设分别为(0,0),(a,0),(0,b)
2(nm)/k为整数时,gcd(2n,k)==1,或者gcd(2n,k)>=2,如果前者,则gcd(2m,k)>=2,且b=2m/gcd(2m,k),a就等于2(nm)/k/b,由于k>=2,可知a,b,都不超过上限
后者同理
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
ll n,m,k;
while(cin>>n>>m>>k){
if((n*m*2)%k!=0){
cout<<"NO\n";
return 0;
}
else{
cout<<"YES\n0 0\n";
ll h=__gcd(2*n,k);
if(h==1){
cout<<n<<' '<<0<<endl;
cout<<0<<' '<<2*m/k<<endl;
}
else{
cout<<2*n/h<<' '<<0<<endl;
cout<<0<<' '<<m*h/k<<endl;
}
}
}
return 0;
}
D. Vasya and Triangle的更多相关文章
- Codeforces Round #512 D - Vasya and Triangle
D - Vasya and Triangle #include<bits/stdc++.h> using namespace std; #define LL long long LL gc ...
- CodeForces - 1058D D. Vasya and Triangle
D. Vasya and Triangle time limit per test1 second memory limit per test256 megabytes inputstandard i ...
- codeforces 1058D.Vasya and Triangle (gcd)
<题目链接> <转载于 >>> > 题目大意: 给出n.m.k.求一个三角形使它的面积等于n*m/k 并且这个三角形的三个顶点所在的坐标为整数点,且顶点满 ...
- Codeforces Round #512 (Div. 2) D. Vasya and Triangle
参考了别人的思路:https://blog.csdn.net/qq_41608020/article/details/82827632 http://www.cnblogs.com/qywhy/p/9 ...
- Codeforces 1058 D. Vasya and Triangle(分解因子)
题目:http://codeforces.com/contest/1058/problem/D 题意:有一个大小为N*M的矩阵内,构造一个三角形,使面积为(n*m)/k.若存在输出三个顶点(整数). ...
- 【Codeforces 1030D】Vasya and Triangle
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 参考这篇题解:https://blog.csdn.net/mitsuha_/article/details/82825862 为什么可以保证m ...
- Codeforces Round #512 (Div. 2) D.Vasya and Triangle 数学
题面 题意:给你n,m,k,在你在(0,0)到(n,m)的矩形内,选3个格点(x,y都是整数),使得三角形面积为n*m/k,不能找到则输出-1 题解:由毕克定理知道,格点多边形的面积必为1/2的整数倍 ...
- Codeforces 1058 D. Vasya and Triangle 分解因子
传送门:http://codeforces.com/contest/1058/problem/D 题意: 在一个n*m的格点中,问能否找到三个点,使得这三个点围成的三角形面积是矩形的1/k. 思路: ...
- D. Vasya and Triangle(思维, 三角形)
传送门 题意: 给你 n, m, k, 问你是否存在一个三角形, 满足三角形的面积等于 n * m / k: 若存在, 输出YES, 且输出满足条件的三角形的三个坐标(答案有多种,则输出任意一种) ...
随机推荐
- flask框架的教程--虚拟环境的安装[一]
为什么需要安装虚拟环境呢? 因为虚拟环境中扩展包对本机软件中不影响 安装 查看是否安装了虚拟环境 安装虚拟环境的第三方工具 sudo pip install virtualenv sudo pip i ...
- Linux之特殊的环境变量IFS以及如何删除带有空格的目录
1.IFS是什么? Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符(internal field separator).IFS环境变量定义了bash shell用户字段分隔符的一系列字 ...
- Linux防火墙基础与编写防火墙规则
Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,raw表,mangle表,nat表,filter表,每个表容器内包括不同的规则链,根 ...
- February 4th, 2018 Week 6th Sunday
Hope clouds observation. 心怀希望会蒙蔽双眼,影响判断. Almost every of us thinks we would be the master of our liv ...
- Go学习笔记03-结构控制
目录 条件语句 循环语句 条件语句 条件语句用 if 关键字来判定条件,如: func bounded(v int) int { if v > 100 { return 100 } else i ...
- 描述各自页面的 page
一个小程序页面由四个文件组成(注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名).分别是: 页面 Page(JS文件) Page(Object) 函数用来注册一个页面.接受 ...
- python第五十三课——time模块
1.time.datatime.calendar模块的引入讲解(重视) Unix时间戳(timestamp):返回的是数值类型数据(float值), 概念:记录了从1970年00点00分00秒至今的秒 ...
- centos7下安装docker(13.2容器数据共享)
回想一下我们学了两种存储方式:storage driver和data volume,其中又分为bind mount和docker managed volume,我们知道storage driver就是 ...
- JS操作DOM节点大全
1.Javascript删除节点 在Javascript中,只提供了一种删除节点的方法:removeChild(). removeChild() 方法用来删除父节点的一个子节点. 语法:parent. ...
- day22 Pythonpython 本文sys模块
一.sys模块 用来提供对Python解释器相关的操作 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.versio ...