Codeforces 1058 D. Vasya and Triangle 分解因子

传送门:http://codeforces.com/contest/1058/problem/D

题意:

  在一个n*m的格点中,问能否找到三个点,使得这三个点围成的三角形面积是矩形的1/k。

思路:

  这个题就是找(0,0)(a,0)(0,b)中的a和b,可以得到2*n*m/k = a*b。所以2*n*m%k != 0答案就不存在。接下来就是把等式左边的分母消去,得到a,b的分配值。

如果k是偶数,那个k肯定可以和2约分,所以把k除2. 再得到g = gcd(n,k),a = n/g,就是说能用n约掉一部分k就约掉,再用k = k/g,b = m/k。

如果k是奇数,等式左边的2不能约掉,就要在经过和上面相同的操作后,把a * 2或者把b*2,肯定是有一个满足不超过限制的,因为之前a或b一定除了一个大于2的数。

#include <algorithm>
#include  <iterator>
#include  <iostream>
#include   <cstring>
#include   <cstdlib>
#include   <iomanip>
#include    <bitset>
#include    <cctype>
#include    <cstdio>
#include    <string>
#include    <vector>
#include     <stack>
#include     <cmath>
#include     <queue>
#include      <list>
#include       <map>
#include       <set>
#include   <cassert>using namespace std;
//#pragma GCC optimize(3)
//#pragma comment(linker, "/STACK:102400000,102400000")  //c++
// #pragma GCC diagnostic error "-std=c++11"
// #pragma comment(linker, "/stack:200000000")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
// #pragma GCC optimize("-fdelete-null-pointer-checks,inline-functions-called-once,-funsafe-loop-optimizations,-fexpensive-optimizations,-foptimize-sibling-calls,-ftree-switch-conversion,-finline-small-functions,inline-small-functions,-frerun-cse-after-loop,-fhoist-adjacent-loads,-findirect-inlining,-freorder-functions,no-stack-protector,-fpartial-inlining,-fsched-interblock,-fcse-follow-jumps,-fcse-skip-blocks,-falign-functions,-fstrict-overflow,-fstrict-aliasing,-fschedule-insns2,-ftree-tail-merge,inline-functions,-fschedule-insns,-freorder-blocks,-fwhole-program,-funroll-loops,-fthread-jumps,-fcrossjumping,-fcaller-saves,-fdevirtualize,-falign-labels,-falign-loops,-falign-jumps,unroll-loops,-fsched-spec,-ffast-math,Ofast,inline,-fgcse,-fgcse-lm,-fipa-sra,-ftree-pre,-ftree-vrp,-fpeephole2",3)#define lson (l , mid , rt << 1)
#define rson (mid + 1 , r , rt << 1 | 1)
#define debug(x) cerr << #x << " = " << x << "\n";
#define pb push_back
#define pq priority_queuetypedef long long ll;
typedef unsigned long long ull;typedef pair<ll ,ll > pll;
typedef pair<int ,int > pii;
typedef pair<int,pii> p3;//priority_queue<int> q;//这是一个大根堆q
//priority_queue<int,vector<int>,greater<int> >q;//这是一个小根堆q
#define fi first
#define se second
//#define endl '\n'#define OKC ios::sync_with_stdio(false);cin.tie(0)
#define FT(A,B,C) for(int A=B;A <= C;++A)  //用来压行
#define REP(i , j , k)  for(int i = j ; i <  k ; ++i)
#define max3(a,b,c) max(max(a,b), c); 
//priority_queue<int ,vector<int>, greater<int> >que;const ll mos = 0x7FFFFFFF;  //2147483647
const ll nmos = 0x80000000;  //-2147483648
const int inf = 0x3f3f3f3f;       
const ll inff = 0x3f3f3f3f3f3f3f3f; //18
// const int mod = 998244353;
const double esp = 1e-8;
const double PI=acos(-1.0);
const double PHI=0.61803399;    //黄金分割点
const double tPHI=0.38196601;template<typename T>
inline T read(T&x){x=0;int f=0;char ch=getchar();while (ch<'0'||ch>'9') f|=(ch=='-'),ch=getchar();while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x=f?-x:x;
}/*-----------------------showtime----------------------*/ll gcd(ll a,ll b){if(b == 0)return a;return gcd(b,a%b);}  
int main(){ll n,m,k;cin>>n>>m>>k;if(2*n*m%k!=0){puts("NO");return 0;}ll a,b;if(k % 2 == 0){k/=2;ll g = gcd(n,k);a = n/g;k = k / g;b = m / k;}else {ll g = gcd(n,k);a = n / g;k = k / g;b = m / k;if(2ll*a < n)a *=2ll;else b *= 2ll;}puts("YES");cout<<"0 0"<<endl;cout<<a<<" 0"<<endl;cout<<"0 "<<b<<endl;return 0;
}
CF 1058D

 

转载于:https://www.cnblogs.com/ckxkexing/p/9695692.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

afterclass_通过beforeClass和afterClass设置增强Spring Test Framework

afterclass如何允许实例方法作为JUnit BeforeClass行为运行 JUnit允许您在所有测试方法调用之前和之后一次在类级别上设置方法。 但是&#xff0c;通过有意设计&#xff0c;它们将其限制为仅使用BeforeClass和AfterClass批注的静态方法。 例如&#xff0c;以下简单演示演示了典…

联想服务器支持esxi版本,联想中国(Lenovo China)_服务频道_服务政策

Lenovo ThinkServer Partner Pack for VMware vCenter重要通知:ThinkServer RD350/RD450/RD550/RD650/TD350 中Lenovo ThinkServer Partner Pack 被Lenovo XClarity Integrator for VMware vCenter所取代, 请点击如下链接获取:Lenovo XClarity Integrator for VMware vCenter 不…

什么是凸组合?

问&#xff1a;什么是凸组合&#xff1f; 答&#xff1a;凸组合是指&#xff0c;假设x1,x2,...,xn是一组对象&#xff08;要根据讨论问题的背景来确定&#xff09;&#xff0c;a1,a2,...,an是n个常数&#xff0c;并且满足a1a2...an1&#xff0c;那么a1x1a2x2...anxn&#xff0…

字魂35号经典雅黑_2020:上海不锈钢黑钛线条行业

2020&#xff1a;上海不锈钢黑钛线条行业 不锈钢花格可以单独制作&#xff0c;也可以连通整个产品以其制作&#xff0c;如屏风。经热浸镀锌处理后的不锈钢屏风构件隔断&#xff0c;栏杆&#xff0c;窗户&#xff0c;门套&#xff0c;拱门&#xff0c;装饰摆件&#xff0c;灯罩等…

MySQL(一)基础操作

MySQL基础操作 一、MySQL数据库管理 1.登入 mysql -u root -p 然后输入密码 2.查看当前MySQL会话使用的字符集 show variables like character%; 显示如下&#xff1a; mysql> show variables like character%;-----------------------------------------------------------…

Spring管理的Hibernate事件监听器

Hibernate提供事件监听器作为其SPI的一部分。 您可以将您的侦听器挂接到许多事件&#xff0c;包括插入前&#xff0c;插入后&#xff0c;删除前&#xff0c;刷新等。 但是有时在这些侦听器中&#xff0c;您想使用spring依赖项。 我之前已经写过有关如何执行此操作的文章 &…

通过bios修改服务器ipmi配置,Dell服务器之配置ipmi远程console管理

1.启动服务器&#xff0c;按F2键进入BIOS设置Serial Communication:Serial Communication......On with Console Redirection via COM2External Serial Connector...COM22.进入系统&#xff0c;修改/boot/grub/menu.1stdefault2timeout15kernel /boot/kernel ro root/dev/sda1 …

分形艺术照

分形艺术照编辑 分形艺术照其实是分形艺术图形的另一种称呼。分形艺术图形的创作依赖于计算机强大的计算能力&#xff0c;将数学公式迭代运算&#xff0c;最终把计算结果以图形显示出来。这样得到的图形&#xff0c;结合创作者的色彩搭配以及变换组合&#xff0c;能产生出具有强…

热像仪 二次开发 c++_重庆多功能红外线热像仪方案

重庆多功能红外线热像仪方案 yuve4uj重庆多功能红外线热像仪方案 同时&#xff0c;中文人机对话对识别与合成、自然语言理解、对话管理以及自然语言生成等研究起到的推动作用。月日&#xff0c;我们开始建立个智能方舱&#xff0c;目的是防止武昌的工作人员感染病。该病房于月日…

C语言-第8课 - 注释符号

第8课 - 注释符号 C语言中的符号符号 名称 符号 名称 符号 名称 符号 名称 , 逗号 ( 左圆括号 ^ xor(异或) \ 反斜杠 . 圆点 ) 右圆括号 - 减号 ~ 波折号 ; 分号 [ 左方括号 < 左尖括号 # 井号 : 冒号 ] 右方括号 > 右尖括号 &…

运行错误5无效的过程调用或参数_FANUC系统常用参数汇总

FANUC机床常用参数简介1、1-999:有关通讯、远程诊断、数据服务参数。如&#xff1a;0000#11程序输出格式为ISO代码10310数据传送波特率204 I/O通讯口&#xff08;用CF卡&#xff09;138#71用存贮卡DNC2.1000-1200&#xff1a;轴控制/设定单位的参数。如&#xff1a;1001.0公/英…

上传文件ajax,ajax 文件上传

ajax 文件上传用户名:文件:

WPF 实现水纹效果

WPF 实现水纹效果 原文:WPF 实现水纹效果鼠标滑过产生水纹&#xff0c;效果图如下&#xff1a; XMAL就放置了一个img标签 后台主要代码 窗体加载&#xff1a; private void Window_Loaded(object sender, RoutedEventArgs e) { Bitmap bmp Properties.Resources.water; ww ne…

OutOfMemoryError:无法创建新的本机线程–神秘化的问题

正如您从我以前的教程和案例研究中可能已经看到的那样&#xff0c;要确定和解决Java Heap Space OutOfMemoryError问题可能很复杂。 我从Java EE生产系统中观察到的常见问题之一是OutOfMemoryError&#xff1a;无法创建新的本机线程&#xff1b; HotSpot JVM无法进一步创建新的…

Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程&#xff0c;买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊&#xff0c;可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来&#xff0c;方便学习。 后记&#xff0c;看完发现这篇文章和《Linux环境下的C…

java的string访问某个元素_C#深究.net常用的23种设计模式之访问者模式(Vistor Pattern)...

一、引言在上一篇博文中分享了责任链模式&#xff0c;责任链模式主要应用在系统中的某些功能需要多个对象参与才能完成的场景。在这篇博文中&#xff0c;我将为大家分享我对访问者模式的理解。二、访问者模式介绍2.1 访问者模式的定义访问者模式是封装一些施加于某种数据结构之…

卸载 系统打印服务器,win10系统打印机驱动卸载不掉的方案介绍

win10系统使用久了&#xff0c;好多网友反馈说win10系统打印机驱动卸载不掉的问题&#xff0c;非常不方便。有什么办法可以永久解决win10系统打印机驱动卸载不掉的问题&#xff0c;面对win10系统打印机驱动卸载不掉的图文步骤非常简单&#xff0c;只需要1、开始-设备和打印机&a…

1007

package com.company;import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {// write your code hereScanner scnew Scanner(System.in);int Nsc.nextInt();int[] numnew int[N];//N以内的所有数int i;ArrayList…

Apache ActiveMQ中的消息级别授权

尽管上一篇文章介绍了“代理级身份验证”&#xff0c;但该博文是关于消息级更严格的授权的。 我在现实生活中的项目中并没有这么精细的授权&#xff0c;但是我想自己做&#xff0c;并为读者提供一个教程&#xff0c;以扩展他们对ActiveMQ中安全性的了解并简化他们的工作。 有…

14章总结

一.lambda表达式 1.lambda表达式简介 lambda表达式不能独立执行&#xff0c;因此必须实现函数式接口&#xff0c;并且会返回一个函数式接口的对象。 语法&#xff1a; ()->结果表达式 参数->结果表达式 (参数1&#xff0c;参数2&#xff0c;...&#xff0c;参数n)->…