<题目链接>

<转载于  >>> >

题目大意:

给出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. oracle数据库内存调整之增加内存

    注:本文来源:小颜Kevin   <oracle数据库内存调整之增加内存> 模拟操作系统内存从2G增加为8G后,调整数据库内存参数,示例中参数不作为实际生产环境参考,因为因需所取,调整参数 ...

  2. Confluence 6 数据库表-系统信息(System information)

    这些表格有存储数据相关的状态和 Confluence 站点的相关配置信息. confversion 被用来在升级系统的时候确定那个数据库的版本应该使用,这个表格只对数据库升级有影响. pluginda ...

  3. Confluence 6 让 Jira 应用停止发送通知到 Confluence

    你可能希望仅仅配置 Confluence 在 workbox 中仅仅显示自己的通知,禁用在 workbox 中显示从 Jira 来的通知.有可能这个 Jira 的应用已经通过应用链接功能正确链接到 C ...

  4. Confluence 6 升级自定义的站点和空间获得你的自定义布局

    我们建议你在对站点进行布局修改的时候,你需要为你修改的 Confluence 站点或空间布局保留所有的修改记录. 如果没有的话,你应该可以通过下面的办法找到你的自定义修改.这个方法将会把你对全部网站和 ...

  5. pytorch中的 requires_grad和volatile

    https://blog.csdn.net/u012436149/article/details/66971822 简单总结其用途 (1)requires_grad=Fasle时不需要更新梯度, 适用 ...

  6. extjs中store的reload事件异步问题解决

    转载自:http://blog.sina.com.cn/s/blog_8f8b7fc10100zd75.html store0.reload({params:{start:0, limit:10}}) ...

  7. 图书管理系统(无中间件,用装饰器的)-----未基于FORM组件

    目的:实现图书的增删改查 models.py from django.db import models # Create your models here. class Book(models.Mod ...

  8. jenkins持续集成:jenkins+SVN

    实现jenkins从svn拉取最新的代码,再执行驱动脚本进行自动化测试 新建一个任务 输入任务名,选“构建一个自由风格的软件项目”,点左下角“确定” 丢弃旧的构建,如下设置为保留3天内的10条构建记录 ...

  9. Vue-cli添加全局js

    1.填写全局config.js function getConfig(str){ var ajaxurl = "http://112.80.39.92:8008/webservices/re ...

  10. hdu 5183(Hash处理区间问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5183 题意:给出一个n个元素的数组,现在要求判断 a1-a2+a3-a4+.....+/-an 中是否 ...