AGC036 A-Triangle | 构造
题意:
给出一个数$S(1\leqslant S \leqslant 10^{18})$。
要求在平面直角坐标系中找到三个点$(X_1,Y_1),(X_2,Y_2),(X_3,Y_3)$,满足$0\leqslant X_1,Y_1,X_2,Y_2,X_3,Y_3 \leqslant 10^9$且以这三个点为顶点的三角形的面积等于$\dfrac{S}{2}$。输出任意一种方案。
题解:
比赛时做这题做到自闭。
考虑令$(X_1,Y_1)$为$(0,0)$,那么最后形成的三角形就会类似于下面这样子。
如图,用矩形面积减去周围三个三角形面积可得所求三角形面积为$\dfrac{1}{2} X_3 Y_2 - \dfrac{1}{2} X_2 Y_3$。
那么我们就要使得$\dfrac{1}{2} X_3 Y_2 - \dfrac{1}{2} X_2 Y_3 = \dfrac{S}{2}$,即$X_3 Y_2 - X_2 Y_3 = S$。
考虑令$(X_2,Y_2)$为$(1,10^9)$,那么就有$10^9 X_3 - Y_3 = S$。
由于坐标均为非负数,所以一定有$10^9 X_3 \geqslant S$,那$-Y_3$可以看成是在减去$10^9 X_3$比$S$多出来的部分。
所以我们只要找到一个最小的$X_3$,使得$10^9 X_3 \geqslant S$,再使$Y_3=10^9 X_3 - S$即可。
这样子处理,求出来的$X_3$和$Y_3$一定是小于等于$10^9$的。
然后我们就做完了。
#include<iostream>
#include<cstdio>
using namespace std;
const long long k=1e9;
int main()
{
long long S=0;
scanf("%lld",&S);
long long x1=0,y1=0;
long long x2=1,y2=k;
long long x3=S/k+(S%k!=0),y3=x3*k-S;
printf("%lld %lld %lld %lld %lld %lld",x1,y1,x2,y2,x3,y3);
return 0;
}
AGC036 A
做题时思维要发散,可以先猜想一些结论,然后再去慢慢验证,最后得出正解。
AGC036 A-Triangle | 构造的更多相关文章
- 简单工厂模式(Simple Factory Pattern)
简单工厂模式概述 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被 ...
- HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))
Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- 2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0<a<180),a为静态成员,成员方法有两个:求面积s(无参数)和修改角度(参数为角度)。 编写实现: 构造函数为 Triangle(int xx,int yy,int aa) 参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示
求高的方法 h=y*Math.sin(a) 按题目要求,需要我们做的分别是:1.改角度2.显示角度3.求面积并显示 代码用到:1.静态成员变量以修改角度2.数学函数 以下具体代码具体分析 import ...
- 设计一个程序,程序中有三个类,Triangle,Lader,Circle。
//此程序写出三个类,triangle,lader,circle:其中triangle类具有类型为double的a,b,c边以及周长,面积属性, //具有周长,面积以及修改三边的功能,还有判断能否构成 ...
- SICP— 第一章 构造过程抽象
SICP Structure And Interpretation Of Computer Programs 中文第2版 分两部分 S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过 ...
- 三角网格(Triangle Mesh)的理解
最简单的情形,多边形网格不过是一个多边形列表:三角网格就是全部由三角形组成的多边形网格.多边形和三角网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,如建筑.车辆.人体,当然还有茶壶等.图14.1 ...
- 数字规律:Pascal‘s triangle
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in pol ...
- 基于HTML5 Canvas的CSG构造实体几何书架
CSG 构造实体几何这个概念在工业水利水电施工上.游戏上已经有很多人使用了,最简单的实体表示叫作体元,通常是形状简单的物体,如立方体.圆柱体.棱柱.棱锥.球体.圆锥等.根据每个软件包的不同这些体元也有 ...
- Pythagorean Triples毕达哥斯拉三角(数学思维+构造)
Description Katya studies in a fifth grade. Recently her class studied right triangles and the Pytha ...
随机推荐
- leetcode-H2O生成(多线程)
现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子. 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来. 氢和氧线程会被分 ...
- 获取发布版SHA1和调试版SHA1
总结 调试版: 常见问题 | 高德地图API (amap.com) 发布版: 首先需要生成签名 Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值_donkor_的博客-C ...
- cnblogs-theme-silence 主题设置简约风格
本文参考 更改博客皮肤 更改博客皮肤为Custom 页面定制CSS代码 勾选禁用模板默认CSS 导入复制该文件内容到代码框中 配置代码块复制功能 样式 和 右侧滑动条样式 /*复制功能添加按钮 beg ...
- qGPU on TKE - 腾讯云发布下一代 GPU 容器共享技术
背景 qGPU 是腾讯云推出的 GPU 共享技术,支持在多个容器间共享 GPU卡,并提供容器间显存.算力强隔离的能力,从而在更小粒度的使用 GPU 卡的基础上,保证业务安全,达到提高 GPU 使用率. ...
- P6378-[PA2010]Riddle【2-SAT】
正题 题目链接:https://www.luogu.com.cn/problem/P6378 题目大意 给出\(n\)个点\(m\)条边的一张无向图,图中有\(k\)种颜色的点. 要求每种颜色选择一个 ...
- 几分钟就能学会的Python虚拟环境教程
什么是虚拟环境 我们在使用Python的时候,通常用pip来进行包管理.比如我们要安装一个叫requests的库,那么我们就会采用以下命令去安装: pip install requests 那你知道, ...
- Selenium自动化结合Mysql数据项目实战操作
前言 web自动化结合Mysql做一些实战操作,今天实战的场景是通过读取web页面字段名与数据库相应的表中的字段名进行对比 - 注:商城是自己搭建在本地,小伙伴需要源码请私聊 解决思路 第一步:获取w ...
- 三步搞定IDEA集成热部署
第一步.在你的SpringBoot项目中添加DevTools依赖 <!-- 热部署DevTools --> <dependency> <groupId>org.sp ...
- 残差网络resnet理解与pytorch代码实现
写在前面 深度残差网络(Deep residual network, ResNet)自提出起,一次次刷新CNN模型在ImageNet中的成绩,解决了CNN模型难训练的问题.何凯明大神的工作令人佩服 ...
- 其他css属性和特性
其他css属性和特性 设置元素的颜色和透明度 下表列出了这些属性. 颜色相关属性 属 性 说 明 值 color 设置元素的前景色 <颜色> opacity 设置颜色的透明度 <数值 ...