codeforces 1030D Vasya and Triangle【思维+gcd】
题目:戳这里
题意:选出三个点构成三角形,要求面积为n*m/k。
解题思路:因为三个点的坐标都是正整数,根据三角形面积公式(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2=n*m/k可知,若三角形存在,则2*n*m/k必为整数。若面积*2为整数,则把该三角形放置在x轴上即可。于是设x1=0,y1=0,x2=a,y2=0,x3=0,y3=b;求a*b=2*n*m/k。(0<=a<=n,0<=b<=m)
欲找到满足条件,可以利用最大公约数。若gcd(2*n,k)==1,则gcd(2*m,k)>=2; b=2*m/gcd(2*m,k) <=m,a=n/(k/gcd(2*m,k)<=n,反之若gcd(2*n,k)>=2同理。
附ac代码:
1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const int inf = 0x3f3f3f3f;
5 const int maxn = 2e3 + 10;
6 #define lowbit(x) x&-x
7 ll gcd(ll a, ll b) {
8 return b?gcd(b,a%b):a;
9 }
10 int main() {
11 ll n, m, k;
12 scanf("%lld %lld %lld", &n, &m, &k);
13 if(2ll * n * m %k != 0) {
14 puts("NO");
15 return 0;
16 }
17 puts("YES");
18 puts("0 0");
19 ll x2, y2, x3, y3;
20 ll sum = 2ll * n * m / k;
21 // printf("%lld\n", gcd(2ll*n,k));
22 if(gcd(2ll*n,k) == 1) {
23 ll u = gcd(2ll*m, k);
24 printf("%lld %lld\n%lld %lld", n/(k/u), 0ll, 0ll, 2ll*m/u);
25 } else {
26 ll u = gcd(2ll*n, k);
27 printf("%lld %lld\n%lld %lld", 2ll*n/u, 0ll, 0ll, m/(k/u));
28 }
29 return 0;
30 }
codeforces 1030D Vasya and Triangle【思维+gcd】的更多相关文章
- codeforces 1058D.Vasya and Triangle (gcd)
<题目链接> <转载于 >>> > 题目大意: 给出n.m.k.求一个三角形使它的面积等于n*m/k 并且这个三角形的三个顶点所在的坐标为整数点,且顶点满 ...
- 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 - 837E - Vasya's Function | Educational Codeforces Round 26
/* CodeForces - 837E - Vasya's Function [ 数论 ] | Educational Codeforces Round 26 题意: f(a, 0) = 0; f( ...
- 【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 ,让你在长为 n,宽为 m 的坐标系里构建一个三角形,使得面积= n*m/k.如果存在,输出“YES”,输出三角形三个顶点的坐标: 如果不存在,输出“NO”. 思路: ...
- Codeforces 305B:Continued Fractions(思维+gcd)
http://codeforces.com/problemset/problem/305/B 题意:就是判断 p / q 等不等于那条式子算出来的值. 思路:一开始看到 1e18 的数据想了好久还是不 ...
- Codeforces 1058 D. Vasya and Triangle(分解因子)
题目:http://codeforces.com/contest/1058/problem/D 题意:有一个大小为N*M的矩阵内,构造一个三角形,使面积为(n*m)/k.若存在输出三个顶点(整数). ...
- Codeforces 1058 D. Vasya and Triangle 分解因子
传送门:http://codeforces.com/contest/1058/problem/D 题意: 在一个n*m的格点中,问能否找到三个点,使得这三个点围成的三角形面积是矩形的1/k. 思路: ...
随机推荐
- DNS基础概要
dns服务系统由客户端和服务器组成,提供域名到ip地址的解析,或者提供ip地址到域名的逆向解析. 1.DNS域名空间 每个dns域名由分级的label构成,如www.sina.com.cn,由www. ...
- Windows下nginx设置开机自启动
第一步:下载 WinSW https://github.com/winsw/winsw/releases/download/v2.10.3/WinSW.NET4.exe 64位系统 https://g ...
- 数据库 | 001-MySQL梳理系列(一)
MySQL基本组成 SQL执行流程 Server 层主要包括连接器.查询缓存.分析器.优化器.执行器,包含了MySQL主要的很多核心功能,以及所有的内置函数.存储过程.触发器.视图等,其实就是所有跨存 ...
- libuv工作队列
目录 1.说明 2.API 2.1.uv_queue_work 2.2.uv_cancel 3.代码示例 1.说明 libuv 提供了一个线程池,可用于运行用户代码,libuv 中的工作队列中的任务会 ...
- 【转】使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
[原]http://blog.chinaunix.net/uid-26284395-id-2949145.html ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制 ...
- Any race is a bug. When there is a race, the compiler is free to do whatever it wants.
https://mp.weixin.qq.com/s/pVJiFdDDKVx707eKL19bjA 谈谈 Golang 中的 Data Race 原创 ms2008 poslua 2019-05-13 ...
- 【LinuxShell】wget 命令详解
参数 待补充 返回值 code means 0 No problems occurred 1 Generic error code 2 Parse error - for instance ...
- scrapy爬虫 简单入门
1. 使用cmd+R命令进入命令行窗口,并进入你需要创建项目的目录 cd 项目地址 2. 创建项目 scrapy startproject <项目名> cd <项目名> 例如 ...
- BootstrapValidator验证规则、BootStrap表格:列参数
BootstrapValidator验证规则 需引用组件 <script src="~/Scripts/jquery-1.10.2.js"></script> ...
- JavaWeb——Servlet开发
什么是Servlet? Servlet运行的过程 Servlet的生命周期 生命周期的各个阶段 Servlet的配置 使用Web.xml配置 使用注解配置 Servlet相关接口 ServletCon ...