题目链接

题意:

给出一个数$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 | 构造的更多相关文章

  1. 简单工厂模式(Simple Factory Pattern)

    简单工厂模式概述 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被 ...

  2. HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))

    Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

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

  4. 设计一个程序,程序中有三个类,Triangle,Lader,Circle。

    //此程序写出三个类,triangle,lader,circle:其中triangle类具有类型为double的a,b,c边以及周长,面积属性, //具有周长,面积以及修改三边的功能,还有判断能否构成 ...

  5. SICP— 第一章 构造过程抽象

    SICP  Structure And Interpretation Of Computer Programs 中文第2版 分两部分  S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过 ...

  6. 三角网格(Triangle Mesh)的理解

    最简单的情形,多边形网格不过是一个多边形列表:三角网格就是全部由三角形组成的多边形网格.多边形和三角网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,如建筑.车辆.人体,当然还有茶壶等.图14.1 ...

  7. 数字规律:Pascal‘s triangle

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in pol ...

  8. 基于HTML5 Canvas的CSG构造实体几何书架

    CSG 构造实体几何这个概念在工业水利水电施工上.游戏上已经有很多人使用了,最简单的实体表示叫作体元,通常是形状简单的物体,如立方体.圆柱体.棱柱.棱锥.球体.圆锥等.根据每个软件包的不同这些体元也有 ...

  9. Pythagorean Triples毕达哥斯拉三角(数学思维+构造)

    Description Katya studies in a fifth grade. Recently her class studied right triangles and the Pytha ...

随机推荐

  1. 对Java的annotation(注解)的认识

    什么是java的annotation(注解) ? 注解的定义(annootation): public @interface TestAnnotation { } 上面的这种形式,便定义了注解是如何定 ...

  2. ThinkPHP5通过composer安装Workerman安装失败问题

    报错: topthink/think-worker v3.0.2 requires topthink/framework ^6 https://blog.csdn.net/Douz_lungfish/ ...

  3. DS博客作业04--图

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业04--图 这个作业的目标 学习图结构设计及相关算法 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1. ...

  4. Java面向对象系列(9)- 方法重写

    为什么需要重写? 父类的功能,子类不一定需要,或者不一定满足 场景一 重写都是方法的重写,和属性无关 父类的引用指向了子类 用B类新建了A类的对象,把A赋值给了B,这时候B是A,A又继承了B类,向上转 ...

  5. Docker系列(11)- 部署Nginx

    step-1 搜索镜像 使用search命令,建议去dockerhub上搜索,可以看到帮助文档 [root@localhost ~]# docker search nginx NAME DESCRIP ...

  6. Linux系列(2) - 命令提示符

    命令提示符 起始符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在目录(家目录);管理员为 /root ,user用户为 /home/user ...

  7. jmeter 元件详细介绍

    一.基本介绍 可以进行功能测试.性能测试.自动化测试. 二.配置元件介绍 线程组:threads 虚拟用户数,设置Jmeter按照什么场景运行,是一系列线程的集合,每一个线程都代表一个正在使用应用程序 ...

  8. python学习1-博客-DB操作类

    #学习python,准备写一个博客,第一天:在别人代码基础上写一个数据库操作的db.py1)python代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- ...

  9. flask项目在Linux运行

    依赖安装: 1.flask 2.flask_sqlalchemy --需要安装flask-mysqldb  安装时提示mysql_config not found ,使用:yum install my ...

  10. Linux学习笔记整理-1

    内核检测常用的7个命令: fdisk命令:用于检查磁盘使用情况,以及可以对磁盘进行分区. #fdisk -l 列出系统内所有能找到的设备的分区 #fdisk /dev/sda 列出sda磁盘的分区情况 ...