Codeforces 1030D 【构造】
2024-10-11 19:58:23
题目大意:给你n,m,k,让你在一个n*m的点阵里构造出一个面积为\(\frac{n*m}{k}\)的三角形
思路
首先要有一个结论是整点三角形的面积分母最多为2,然后就可以判断不存在的情况了
接下来就直接进行构造就可以了
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define IL inline
#define fu(a,b,c) for(LL a=b;a<=c;++a)
#define fd(a,b,c) for(LL a=b;a>=c;--a)
#define FLIE ""
IL LL read(){
LL ans=0,w=1;char c=getchar();
while(!isdigit(c)&&c!='-')c=getchar();
if(c=='-')w=-1,c=getchar();
while(isdigit(c))ans=(ans<<1)+(ans<<3)+c-'0',c=getchar();
return ans*w;
}
LL n,m,k,g,ttmp,f=-1;
LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
int main(){
n=read(),m=read(),k=read();
LL g1=gcd(n,k);
n/=g1,k/=g1;if(g1!=1)f=1,ttmp=g1;
LL g2=gcd(m,k);
m/=g2,k/=g2;if(g2!=1)f=2,ttmp=g2;
if(k>2)puts("NO");
else{puts("YES");
if(k==1){
if(f==1)n*=2;
else m*=2;
}
printf("0 0\n%I64d 0\n0 %I64d",n,m);
}
return 0;
}
最新文章
- [Linux &; SVN] SVN介绍及Linux下SVN命令收录
- 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)
- 浅谈malloc()与free()
- 数学 ACdream 1196 KIDx&#39;s Triangle
- 神经网络中误差反向传播(back propagation)算法的工作原理
- (转)兼容主流浏览器的CSS透明代码
- 转载——web前端相关资源总结
- 解压Taobao手机客户端发现的东西
- Visual Studio Team Services 帐户管理操作
- Python进制转换(二进制、十进制和十六进制)
- Xamarin.android 重写axml控件
- consul 搭建
- 【转帖】Linux的历史----Linux内核剖析(一)
- slf4j的简单用法以及与log4j的区别
- 第三节 java 数组
- html标签二
- JavaScript模块化-RequireJs实现AMD规范的简单例子
- Add map surrounds using the SymbologyControl
- 微服务深入浅出(3)-- 服务的注册和发现Eureka
- 【原创】elasticsearch入门