题目链接:https://www.acwing.com/problem/content/1239/

题目
如下图所示的螺旋折线经过平面上所有整点恰好一次。

对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。

例如 dis(0,1)=3,dis(−2,−1)=9

给出整点坐标 (X,Y),你能计算出 dis(X,Y) 吗?
输入格式
包含两个整数 X,Y。

输出格式
输出一个整数,表示 dis(X,Y)。

数据范围
− 1 0 9 ≤ X , Y ≤ 1 0 9 −10^9≤X,Y≤10^9 −109≤X,Y≤109

输入样例:

0 1

输出样例:

3

思路:
分类讨论,找出四个角的距离公式(等差数列求和,d=8)
每个象限的点的距离可以由角的距离通过偏移得来
x轴和y轴上的点等差数列直接求和即可得到距离

注:第三象限的点特殊些

AC代码

#include <iostream>
#include <cstdio>
#include <cmath>using namespace std;typedef long long LL;LL x,y,ans;int main()
{scanf("%lld%lld",&x,&y);if(x > 0 && y > 0) // 第一象限{LL r = max(x,y),d = 4;ans += r*4+r*(r-1)*4;if(x < r) ans -= r-x;if(y < r) ans += r-y;}else if(x < 0 && y > 0) // 第二象限{LL r = max(abs(x),y),d = 2;ans += r*2+r*(r-1)*4;if(abs(x) < r) ans += r-abs(x);if(y < r) ans -= r-y;}else if(x < 0 && y < 0) // 第三象限{ans = 1;LL r = max(abs(x)-1,abs(y)),d = 8;ans += r*8+r*(r-1)*4;if(abs(x)-1 < r) ans -= r-(abs(x)-1);if(abs(y) < r) ans += r-abs(y);}else if(x > 0 && y < 0) // 第四象限{LL r = max(x,abs(y)),d = 6;ans += r*6+r*(r-1)*4;if(x < r) ans += r-x;if(abs(y) < r) ans -= r-abs(y);}else if(x > 0 && y == 0) // x轴正向{LL r = x,d = 5;ans += r*5+r*(r-1)*4;}else if(x < 0 && y == 0) // x轴负向{LL r = abs(x),d = 1;ans += r+r*(r-1)*4;}else if(x == 0 && y > 0) // y轴正向{LL r = y,d = 3;ans += r*3+r*(r-1)*4;}else if(x == 0 && y < 0) // y轴负向{LL r = abs(y),d = 7;ans += r*7+r*(r-1)*4;}printf("%lld\n",ans);return 0;
}

螺旋折线(推公式,找规律)相关推荐

  1. BZOJ 3823 定情信物【脑推公式/找规律,线性求逆元,坑爹的数论题细节x

    如果用f[i][j]表示i维空间里的j维元素有多少个,有公式 f[i][j] = C(i,j) * 2^(i-j) --看题解似乎都是找规律的啊--sro mhy orz 考虑j维向量的方向有C(i, ...

  2. 概率,递推,找规律,高精度(FXTZ II,hdu 4043)

    总结一下吧.. 像这种题,输入很简单,就几个数,然而正常算运算量很大,或时间复杂度很高,或分类讨论很麻烦的题,就试试找规律吧.只能说很可能是找规律,但也有例外吧. 这题的话,手算或计算机算多几个小数据 ...

  3. POJ 2229 Sumsets(递推,找规律)

    构造,递推,因为划分是合并的逆过程,考虑怎么合并. 先把N展开成全部为N个1 然后合并,因为和顺序无关,所以只和出现次数有关 情况有点多并且为了避免重复,分类,C[i]表示序列中最大的数为2^i时的方 ...

  4. hdu 7092 仓颉造数 (猜测,手模数据找规律,推公式)

    hdu 7092 仓颉造数 分析: 先考虑一个问题,若平均数能转换成 111 ,那么调和平均数也能转换成 111 ,反之亦然 所以,问题就转换成了,生成平均数,判断平均数是否会出现 111 ,至于能能 ...

  5. 找规律万能公式_数列找规律万能公式.doc

    数列找规律公式 数列找规律用拉格朗日插值.拉格朗日"提出"了这种方法,所谓的插值,就是"插""值",就是指找出一个通过给出离散数据点的函数. ...

  6. 找规律万能公式_万能公式:找规律什么的都弱爆了 | 死理性派小组 | 果壳网 科技有意思...

    小学的奥数题中,最令人头疼的题型无非是找规律了,各种毫无规律的数列.你可以试试下面的例子: *1,4,14,53,90,268,977,1586 *1 ,3, 7, 8, 0, 5, 9, 2, 4, ...

  7. 找规律万能公式_初中规律题的万能公式

    初中规律题的万能公式,我们学生和家长都在注意这个问题,以下是对于这一问题的几种回答,家长和学生们看看有没有合适你的! 1  初中数学解规律题七大技巧 原文章标题:初中数学科目解规律题七大技能 解规律题 ...

  8. [codeforces 1327E] Count The Blocks 打表找规律+根据规律找公式+优化公式

    Educational Codeforces Round 84 (Rated for Div. 2)   比赛人数13522 [codeforces 1327E]  Count The Blocks  ...

  9. HihoCoder - 1318 非法二进制数(找规律,BM线性递推)

    描述 如果一个二进制数包含连续的两个1,我们就称这个二进制数是非法的. 小Hi想知道在所有 n 位二进制数(一共有2n个)中,非法二进制数有多少个. 例如对于 n = 3,有 011, 110, 11 ...

最新文章

  1. 2022-2028年中国蛋制品行业市场专项调查及前瞻分析报告
  2. 24 location对象
  3. 【收藏】为什么在Scala中可以在运行时将AnyVal转换为AnyRef?AnyVal转换为AnyRef
  4. 九十六、双指针和滑动窗口算法模板
  5. Linux TCP server系列(4)-浅谈listen与大并发TCP连接
  6. 整理了二个基本的css库(高手请绕道)
  7. JavaScript学习笔记 - 变量、作用域与内存问题
  8. 跨过山和大海的地铁外放党们有人管了,明年开始!网友:没收手机么?
  9. 每天5分钟玩转docker容器技术 pdf_stack 的优势 每天5分钟玩转 Docker 容器技术(113)...
  10. centos6.5-64安装zabbix2.4
  11. 不显示负频率的部分,坐标轴转换为频率,幅值量纲还原改善频谱图以及功率谱和对数功率谱
  12. Jmockit单元测试MockUp调用原始方法
  13. 云服务器磁盘扩容后不显示,腾讯云服务器磁盘扩容问题小记
  14. mysql创建视图失败_mysql无法创建视图怎么办
  15. 为什么安装了python桌面没有图标怎嘛办_安装了软件找不到图标怎么办_电脑软件安装了为什么不见图标...
  16. 最大子列和(C语言)
  17. 分享一个自己做的记账的小程序 - 智能记账,欢迎朋友们体验
  18. 网络服务器是干什么用的
  19. 一个应届毕业生的求职回忆录(指引道路)
  20. 牛客2019跨年AK场

热门文章

  1. 开源的企业ERP系统
  2. Redmi9A,联发科HelioG25处理器,救砖,刷ubuntutouch
  3. IOS中微博正文开发步骤总结
  4. 小马识途:如何优化小红书笔记排名
  5. oracle sga使用率高,Oracle 查看SGA PGA使用率
  6. PS打造暗调高清的海景照片nbsp;摄…
  7. 判断矩形与矩形、圆、三角形的相交问题
  8. 学c语言要先学什么,C语言入门要先学什么,你知道怎么入手吗?
  9. grpc外部负载均衡器测试
  10. JAVA Web Service Soap WSDL --CTO