蓝桥杯——螺旋折线(2018JavaB组第7题19分)
螺旋折线(18JB-7-19')

如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
【输入格式】
X和Y
对于40%的数据,-1000 <= X, Y <= 1000
对于70%的数据,-100000 <= X, Y <= 100000
对于100%的数据, -1000000000 <= X, Y <= 1000000000
【输出格式】
输出dis(X, Y)
【输入样例】
0 1
【输出样例】
3
资源约定:
峰值内存消耗(含虚拟机)< 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。
测试数据
| 测试数据1 | 测试数据2 |
|---|---|
| -466 371 | 36021473 676764583 |
| 测试结果1 | 测试结果2 |
| 867597 | 1832041202571912446 |
package bb;
import java.util.Scanner;
class JB18_7螺旋折线 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long x = sc.nextLong();
long y = sc.nextLong();
sc.close();
// (1)判断所在点所在的正方形:max(|x|,|y|)
long n = Math.max(Math.abs(x), Math.abs(y));
// (2)计算:n之内的正方形的长度之和
// 规律:8,16,24,32,...=>等差数列
// 首项:0(n=1时,内部没有正方形,为0)
// 末项:8*(n-1)(点在n上,内部的正方形为n-1)
// 求和:(0+8(n-1))*n/2=4(n-1)*n
long innerSum = 4 * (n - 1) * n;
// (3)计算:点(x, y)到点(-n, -n)的距离
// 过原点和(-n,-n)画一条辅助线,
// |-线上方的点好算:水平=(x+n),垂直=(y+n)
// |-线下方的点可以折射为线上方的点,用外框正方形的周长去减即可
long sum = 0;
long dis1 = x + n;
long dis2 = y + n;
if (y > x) {
// 线上方的点
sum += (dis1 + dis2);
} else {
// 线下方的点:所在的正方形周长-折射之后的距离
sum += (8 * n - (dis1 + dis2));
}
System.out.println(sum + innerSum);
}
}
蓝桥杯——螺旋折线(2018JavaB组第7题19分)的更多相关文章
- 蓝桥杯——快速排序(2018JavaB组第5题9分)
快速排序(18JavaB5,9') 以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码,填写划线部分缺失的内容. impo ...
- Java实现第九届蓝桥杯螺旋折线
螺旋折线 题目描述 如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0 ...
- 蓝桥杯——复数幂 (2018JavaAB组第3题)
18年Java蓝桥杯A组第3题和B组是一样的. 第三题往往比较难. 复数幂 (18JavaAB3) (A.B两卷第三题一样) 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数. ...
- 蓝桥杯——分组比赛(2017JavaB组第3题)
分组比赛(17JavaB3) 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法: ABC DEF GHI ABC D ...
- 第七届蓝桥杯省赛javaB组 第七题剪邮票
剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的 ...
- 2015年蓝桥杯省赛B组第3题--三羊献瑞
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的 ...
- 蓝桥杯——字母阵列(2018JavaC组第3题)
字母阵列(18JavaC3) 标题:字母阵列 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:"LANQIAO". SLANQIAO ZOEXCCGB MOAYWKHI ...
- 第七届蓝桥杯省赛JavaB组——第十题压缩变换
题目: 压缩变换小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战.最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
随机推荐
- F. Moving Points 解析(思維、離散化、BIT、前綴和)
Codeforce 1311 F. Moving Points 解析(思維.離散化.BIT.前綴和) 今天我們來看看CF1311F 題目連結 題目 略,請直接看原題. 前言 最近寫1900的題目更容易 ...
- 部署SpringBoot项目jar包到云服务器
前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...
- Verification of WISHBONE I2C Master Core(IRUN+Simvision)
一.前言 很久没写技术博客了,有些懈怠,生活还得继续折腾.转眼工作一年多,时间越长越发觉得自己知之甚少,当然这跟IC行业技术密集有关.用空余时间在opencores网站上下载些小的IP看看 验证下,让 ...
- 框架-SPI四种模式+通用设备驱动实现
目录 前言 笔录草稿 SPI介绍 SPI四种模式 ** SPI 驱动框架 ** 框架 前言 SPI 介绍为搜集百度资料+个人理解 其余为原创(有误请指正) 集四种模式于一身 笔录草稿 SPI介绍 SP ...
- python类变量与成员变量
类变量与成员变量 关注公众号"轻松学编程"了解更多. 在类中声明的变量我们称之为类变量[静态成员变量], 在__init__()函数中声明的变量并且绑定在实例上的变量我们称之为 ...
- 解决nginx中js修改不生效的问题
最近在做商城项目,使用nginx实现动静分离.结果在修改nginx文件夹下的js文件,浏览器访问网址现实的还是原来的旧的js文件.清理浏览器缓存,重启nginx均无效,最后在网上找到解决方案
- ci之 core下CodeIgniter源码分析(1)
ci 执行流程 index.php 文件 加载codeigniter文件 codeigniter部分里面加载的: 加载配置文件constants 加载全局公共函数core/Common.php 文件 ...
- 解决js中对象中属性是数组中对应元素,不能使用点数组元素(.数组[i])来获取value值来循环,属性不能是数组元素array[i]的问题
数据类型 //示例 var tags1avg= ['rg2_crt_001_001_avg', 'rg2_crt_001_002_avg', 'rg2_crt_001_003_avg', 'rg2_c ...
- java服务器部署开源项目(若依)
1准备工作 (1)阿里云 centos_8_0_x64_20G_alibase_20200218.vhd [root@iZ2zeeqw5fxmm9zagf439aZ ~]# cat /etc/redh ...
- Flink处理函数实战之一:深入了解ProcessFunction的状态(Flink-1.10)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...