codeforces A. Point on Spiral 解题报告
题目链接:http://codeforces.com/problemset/problem/279/A
题目意思:给出一个坐标点(x, y),问当从(0, 0) 开始到达该点转过的拐角有多少个。(拐角是这样的:(0, 0) -> (1, 0) -> (1, 1) -> (-1, 1) -> (-1, -1) -> (2, -1) -> (2, 2) ->...),总的来说,对于每一圈可以想成它是从坐标系的第四象限开始的(x > 0 && y < 0)
这道题考的主要是观察能力,最重要的还有细心!!
可以发现,每一圈有四个拐角:(x, -(y+1)),(x, x),(-x, x),(-x, -x),那么求第 i 个圈时总共经过的拐角,就等于前 i-1 圈经过的拐角 + 第 i 圈经过的拐角。第 i 圈经过的拐角比较棘手,总的来说就是考细心了。特别注意的是,当输入的点为(x, -x)时,要在算出的拐角前提下再加3,因为这点实质在第 i+1 圈中,3的意思表示第 i 圈的3个拐角
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std; int main()
{
int x, y, ans;
while (scanf("%d%d", &x, &y) != EOF)
{
if (abs(x) <= && abs(y) <= ) // 1/0
{
if (x == && y == || x == && y == )
printf("0\n");
else if (x == && y == )
printf("1\n");
else if (y == )
printf("2\n");
else if (x == -)
printf("3\n");
else
printf("4\n");
}
else
{
if (abs(x) > abs(y))
ans = (abs(x)-) * ; // 前round
else
ans = (abs(y)-) * ;
// 四角
if (x > && abs(y) <= abs(x))
{
if (x != -y+)
{
ans += ;
if (-y == x)
ans += ;
}
}
else if (y > && abs(x) <= abs(y))
ans += ;
else if (x < && abs(x) >= abs(y))
ans += ;
else
ans += ;
printf("%d\n", ans);
}
}
return ;
}
codeforces A. Point on Spiral 解题报告的更多相关文章
- Codeforces Educational Round 92 赛后解题报告(A-G)
Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...
- codeforces 476C.Dreamoon and Sums 解题报告
题目链接:http://codeforces.com/problemset/problem/476/C 题目意思:给出两个数:a 和 b,要求算出 (x/b) / (x%b) == k,其中 k 的取 ...
- Codeforces Round #382 (Div. 2) 解题报告
CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...
- codeforces 507B. Amr and Pins 解题报告
题目链接:http://codeforces.com/problemset/problem/507/B 题目意思:给出圆的半径,以及圆心坐标和最终圆心要到达的坐标位置.问最少步数是多少.移动见下图.( ...
- codeforces 500B.New Year Permutation 解题报告
题目链接:http://codeforces.com/problemset/problem/500/B 题目意思:给出一个含有 n 个数的排列:p1, p2, ..., pn-1, pn.紧接着是一个 ...
- codeforces B. Xenia and Ringroad 解题报告
题目链接:http://codeforces.com/problemset/problem/339/B 题目理解不难,这句是解题的关键 In order to complete the i-th ta ...
- codeforces 462C Appleman and Toastman 解题报告
题目链接:http://codeforces.com/problemset/problem/461/A 题目意思:给出一群由 n 个数组成的集合你,依次循环执行两种操作: (1)每次Toastman得 ...
- codeforces 460A Vasya and Socks 解题报告
题目链接:http://codeforces.com/problemset/problem/460/A 题目意思:有一个人有 n 对袜子,每天早上会穿一对,然后当天的晚上就会扔掉,不过他会在 m 的倍 ...
- codeforces 567D.One-Dimensional Battle Ships 解题报告
题目链接:http://codeforces.com/problemset/problem/567/D 题目意思:给出 1 * n 的 field,编号从左至右依次为 1,2,...,n.问射 m 枪 ...
随机推荐
- iOS -- MBProgressHUB
高级: http://www.jianshu.com/p/485b8d75ccd4 //只有小菊花 - (void)indeterminateExample { // Show the HUD on ...
- mac 下配置 protobuf golang插件 并使用
介绍 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准Protocol Buffers 是一种轻便高效的结构化数据存储格式 可以用 ...
- curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?
1.python使用flask+flask_restfull框架写的api接口,做为服务 2.curl 做为客户端发送数据 from flask import request curl发送json的方 ...
- DICOM医学图像处理:Orthanc Plugin SDK实现WADO服务
背景: Orthanc是博主发现的一个很完美的DICOM和HTTP服务端开源软件,前几篇分别介绍了Orthanc的基本使用.Orthanc从0.8.0版本之后给出了Plugin SDK,通过该SDK可 ...
- 如何手写一款SQL injection tool?
0×01 前言 我想在FreeBuf上出没的人一般都是安全行业的,或者说是安全方面的爱好者,所以大家对sql注入应该都比较了解,反正我刚入门的时候就是学的这些:sql注入.xss之类的.sql注入从出 ...
- DAO 层实现
一.实验介绍 1.1 实验内容 本节课程主要利用 MyBatis 框架实现 DAO 层. 1.2 实验知识点 MyBatis 框架 MySQL 1.3 实验环境 JDK1.8 Eclipse Java ...
- odoo 有哪些文档资源
// openbook [覆盖 openerp 7 及之前版本] https://doc.odoo.com/ // 最新的 odoo documentation user[覆盖 odoo 9] ...
- Crtmp Server 几个关键流程
最近在阅读Crtmp Sever 源码,有些关键流程记录下来,以备以后查阅.假设rtmp播放地址是"rtmp://127.0.0.1/live/mystream live=1" 1 ...
- initializer_list、初始化列表、列表初始化
什么是列表初始化 使用一个花括号来初始化变量,表现形式如下: std::vector<int>a{1,2,3,4,5}; 或者 std::vector<int>a = {1,2 ...
- ECharts整合HT for Web的网络拓扑图应用
ECharts图形组件在1.0公布的时候我就已经有所关注.今天在做项目的时候遇到了图标的需求,在HTfor Web上也有图形组件的功能.可是在尝试了下详细实现后,发现HT for Web的图形组件是以 ...