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 枪 ...
随机推荐
- 转:在CentOS下编译安装GCC
转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术 秋水逸冰 发布于: 2015-09-02 更新于: 2015-09-02 6519 次围观 ...
- C#应用程序配置文件.config介绍
我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等.你可能知道在WinForm应用程序中可以利用Properties.Settings来进行类似的工作,但这些其实都利用了Ap ...
- [Guava源代码阅读笔记]-Basic Utilities篇-1
欢迎訪问:个人博客 写该系列文章的目的是记录Guava源代码中个人感觉不错且值得借鉴的内容. 一.MoreObjects类 //MoreObjects.ToStringHelper类的toString ...
- hdu5379||2015多校联合第7场1011 树形统计
pid=5379">http://acm.hdu.edu.cn/showproblem.php? pid=5379 Problem Description Little sun is ...
- java解析xml汇总
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- 转帖:HttpStatusCode状态说明C#版
Continue 等效于 HTTP 状态 100.Continue 指示客户端可能继续其请求. SwitchingProtocols 等效于 HTTP 状态 101.SwitchingProtocol ...
- PC和手机怎么实现绝对居中?
示例1(懒人之家): http://www.51xuediannao.com/js/nav/360buy_nav.html 示例2(google官方):
- python(32)- 模块练习Ⅱ:使用正则表达式实现计算器的功能
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- C++零基础到入门
(1)C语言概述 (2)编写.运行一个简单的C语言程序 (3)数据类型 (4)运算符和表达式 如果你对C语言一窍不通,那你就好好看这篇文章,我会力争让你真正的做到从零基础到入门,同时这篇文章会让你基本 ...
- Qt在线讲座之QML脚本书写规范
时间:2016年3月1日晚7:30 在线讲座:http://qtdream.com主页处就可以收看直播(详见主页提示) 參与对象:对Qt跨平台开发框架感兴趣的朋友们.当然了,假设你是大牛.也可以旁听一 ...