<题目链接>

<转载于  >>> >

题目大意:

给出n、m、k.求一个三角形使它的面积等于n*m/k  并且这个三角形的三个顶点所在的坐标为整数点,且顶点满足0<=x<=n,0<=y<=m.询问是否存在这样的三角形。若存在则输出任意一种符合情况的三个顶点。

解题分析:

1.每个坐标为整数的三角形的面积 * 2是整数。(可证明)

2.由1可得若存在满足题意的三角形,则n,m,k一定满足式子 2mn % k == 0。所以此时可以判掉NO的情况,剩下的一定是YES。


3.讨论三种情况 (2m) % k == 0,(2n) % k == 0,(2mn)%k == 0。


a.(2m)%k==0,横坐标可以为n,满边,纵坐标为2m/k。


b.同理,纵坐标为m,横坐标为2n/k。


c.此时可知2m%k!=0 ,2n%k!=0,2mn%k == 0。


此时没有边是满边,所以此时求t = gcd(2n,k)t!=1,并且此时横坐标为2n/t,纵坐标可以由面积 * 2 / 横坐标得到(m * t)%k。

#include <cstdio>
typedef long long ll;
ll gcd(ll a,ll b){ return a%b==? b:gcd(b,a%b); } int main(){
ll n,m,k;
scanf("%lld%lld%lld",&n,&m,&k);
if(*n*m%k!=)puts("NO");
else{
puts("YES");
printf("0 0\n");
if((*m)%k==){
printf("%lld 0\n",n);
printf("0 %lld\n",*m/k);
}
else if((*n)%k==){
printf("%lld 0\n",*n/k);
printf("0 %lld\n",m);
}
else{ //三角形两条直角边均不为满边的情况
ll tmp=gcd(*n,k);
printf("%lld 0\n",*n/tmp);
printf("0 %lld\n",m*tmp/k);
}
}
return ;
}

2018-09-29

codeforces 1058D.Vasya and Triangle (gcd)的更多相关文章

  1. codeforces 1030D Vasya and Triangle【思维+gcd】

    题目:戳这里 题意:选出三个点构成三角形,要求面积为n*m/k. 解题思路:因为三个点的坐标都是正整数,根据三角形面积公式(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2=n* ...

  2. CodeForces - 1058D D. Vasya and Triangle

    D. Vasya and Triangle time limit per test1 second memory limit per test256 megabytes inputstandard i ...

  3. Codeforces Round #512 D - Vasya and Triangle

    D - Vasya and Triangle #include<bits/stdc++.h> using namespace std; #define LL long long LL gc ...

  4. CodeForces - 837E - Vasya's Function | Educational Codeforces Round 26

    /* CodeForces - 837E - Vasya's Function [ 数论 ] | Educational Codeforces Round 26 题意: f(a, 0) = 0; f( ...

  5. Codeforces 979 D. Kuro and GCD and XOR and SUM(异或和,01字典树)

    Codeforces 979 D. Kuro and GCD and XOR and SUM 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s:从当前数组a中找出一个数u满足 u ...

  6. Codeforces 1058 D. Vasya and Triangle 分解因子

    传送门:http://codeforces.com/contest/1058/problem/D 题意: 在一个n*m的格点中,问能否找到三个点,使得这三个点围成的三角形面积是矩形的1/k. 思路: ...

  7. Codeforces 1058 D. Vasya and Triangle(分解因子)

    题目:http://codeforces.com/contest/1058/problem/D 题意:有一个大小为N*M的矩阵内,构造一个三角形,使面积为(n*m)/k.若存在输出三个顶点(整数). ...

  8. 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 ...

  9. 【Codeforces 1030D】Vasya and Triangle

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 参考这篇题解:https://blog.csdn.net/mitsuha_/article/details/82825862 为什么可以保证m ...

随机推荐

  1. STM32L476应用开发之五:数据保存与SD卡操作

    便携式气体分析仪的特点就是离线运行.尽管是离线运行,但测试数据还是需要的,所以采取方式保存数据就是必须的.在本次项目中我们计划采用SD卡来保存数据. 1.硬件设计 该读卡器整合 SD 卡规范和 FAT ...

  2. Centos7 linux 卸载自带安装的jdk 并yum自动安装jdk1.8

    一:卸载系统自带安装的JDK 注:本文参考了< 使用CentOS7卸载自带jdk安装自己的JDK1.8> 通过xshell工具成功连接安装好的虚拟机之后可通过    rpm -qa | g ...

  3. Confluence 6 管理协同编辑 - 代理和 SSL 的考虑

    对于你如何连接  Synchrony 是与你的环境有关的.我们知道绝大部分的 Confluence 站点是运行在反向代理后面的,同时还使用了 SSL.这里是帮助你在你环境中识别正确的配置的一些信息和一 ...

  4. 从 Confluence 5.3 及其早期版本中恢复空间

    如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话.你可以使用临时的 Confluence 空间安装,然后将 ...

  5. Confluence 6 CSS 指南:修改顶部背景

    Confluence 默认页面的顶部是有关站点的菜单连接,在这里定义了 快速连接, 浏览菜单,用户菜单和快速查找输入框.在这个示例中,我们将会尝试修改顶部的菜单部分的背景和一些自定义的图片. 创建一个 ...

  6. Confluence 6 关于统一插件管理器

    所有的组件通过 统一插件管理器(Universal Plugin Manager)进行管理,这个也被称为 UPM.UPM 可以在几乎所有的 Atlassian 应用中找到,能够提供完整同意的插件安装管 ...

  7. ios 输入框问题

    去除ios输入框阴影 input,textarea{-webkit-appearance:none; outline: none; } ios有边框时设置boder-radius:0: 去除默认圆角问 ...

  8. 【Java】SpringBoot配置文件读取中文乱码

    [问题]在配置文件application.properties中配置一个值含有中文的变量.spring加载配置之后,读取的变量中文部分出现乱码.根据CSDN说的一堆办法,改encoding为UTF-8 ...

  9. Android UiAutomator

    UiAutomator是一个做UI测试的自动化框架.<Android自动化测试框架>中已有详细介绍,这里就不再累赘了. 一.首先了解自动化测试流程 自动化需求分析 测试用例设计 自动化框架 ...

  10. linux下命令窗口中$和#的区别

    $表示现在的用户是普通用户#表示现在的用户是root用户 # 代表你能做任何事$ 代表你能做一些/下和/home目录的所有事