NOIP 普及组 2014 螺旋矩阵
https://www.cnblogs.com/violet-acmer/p/9898636.html
题解:
这道题挺有意思的,有点考思维吧。
大体思路是用四个pair<int ,int >变量表示四个角的坐标。
(1)每次判断所求点( i , j )是否在当前四个点所围城的正方框上。
(2)如果在,遍历一遍这个框的所有点,输出结果。
(3)如果不在,四个角往里缩,来到更小的正方框上,重复 (1) 过程
具体细节看代码。
AC代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define P pair<int ,int > int n,x,y;
P p[];
bool isSat(){//判断点(x,y)是否在当前四个点所表示的正方框上
//满足其一即可判断在,具体为啥,画个图就明白了
if(x == p[].first || x == p[].first || y == p[].second || y == p[].second)
return true;
return false;
}
bool isPos(P _p){//判断当前来到的点是否为所求点(x,y)
return x == _p.first && y == _p.second;
}
int main()
{
scanf("%d%d%d",&n,&x,&y);
//存储四个角的坐标
p[]=P(,),p[]=P(,n);
p[]=P(n,),p[]=P(n,n);
while(!isSat())//如果不在当前正方框上,正方框向内缩
{
p[].first++,p[].second++;
p[].first++,p[].second--;
p[].first--,p[].second++;
p[].first--,p[].second--;
}
ll res=;
for(int i=;i <= p[].first;i++)
res += 1ll**(n-*i+);
while(p[].second < p[].second && !isPos(p[]))//判断就(x,y)是否在正方框的上边
p[].second++,res++;
if(isPos(p[]))
{
printf("%lld\n",res);
return ;
} while(p[].first < p[].first && !isPos(p[]))//判断就(x,y)是否在正方框的右边
p[].first++,res++;
if(isPos(p[]))
{
printf("%lld\n",res);
return ;
} while(p[].second > p[].second && !isPos(p[]))//判断就(x,y)是否在正方框的下边
p[].second--,res++;
if(isPos(p[]))
{
printf("%lld\n",res);
return ;
} while(!isPos(p[]))//判断就(x,y)是否在正方框的左边
p[].first--,res++;
printf("%lld\n",res);
}
NOIP 普及组 2014 螺旋矩阵的更多相关文章
- 【NOIP2014 普及组】螺旋矩阵
[NOIP2014 普及组]螺旋矩阵 一.题目 [NOIP2014 普及组]螺旋矩阵 时间限制: 1 Sec 内存限制: 128 MB 提交: 18 解决: 0 [提交][状态][讨论版] 题目描 ...
- NOIP 2014 普及组 T3 螺旋矩阵
[题意] 已知:n,r,c(n<=30000) 条件:给定n行n列的螺旋矩阵(从矩阵的左上角(1,1)出发,初始时向右移动:如果前方是未曾经过的格子, 则继续前进,否则右转:重复上述操作直至经过 ...
- NOIP 普及组 2014 比例简化
传送门 https://www.cnblogs.com/violet-acmer/p/9898636.html 题解: 一开始想多了,以为得保证两者之间的相对比率,至少不能改变的太离谱啊. but,直 ...
- NOIP 普及组 2014 珠心算测验
传送门 https://www.cnblogs.com/violet-acmer/p/9898636.html 题解: 枚举两两间出所有的可能加和,然后遍历一遍这 n 个数,找出满足条件的总个数. 这 ...
- 2016.9.10初中部上午NOIP普及组比赛总结
2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...
- 2016.10.5初中部上午NOIP普及组比赛总结
2016.10.5初中部上午NOIP普及组比赛总结 这次的题目出得挺有质量的.但我觉得我更应该努力了. 进度: 比赛:0+20+0+0=20 改题:AC+AC+AC+AC=AK kk的作业 这题我错得 ...
- 2321. 【NOIP普及组T1】方程
2321. [NOIP普及组T1]方程 时间限制: 1000 ms 空间限制: 262144 KB 题目描述
- [NOIP普及组2011]装箱问题
目录 链接 博客链接 题目链接 题目内容 题目描述 格式 输入 输出 样例 输入 输出 前缀知识 题解 题目名称:装箱问题 来源:2011年NOIP普及组 链接 博客链接 CSDN 洛谷博客 题目链接 ...
- [NOIP普及组2001]最大公约数和最小公倍数问题
目录 链接 博客链接 题目链接 题目内容 题目描述 格式 输入 输出 数据 样例 输入 输出 说明 题目名称:最大公约数和最小公倍数问题 来源:2001年NOIP普及组 链接 博客链接 CSDN 洛谷 ...
随机推荐
- Linux下selinux简单梳理
在linux环境下执行某些程序时,偶尔会遇到来一个关于selinux的强制模式不可执行的情况,这种情况下需要关闭selinux或者将enforcing改为permissive模式后才能进行执行.sel ...
- last individual reading task 12061183叶露婷
http://www.cnblogs.com/yltyy/p/4025426.html 1.Different people deserve different tasks; Once team ro ...
- 个人作业Week1
一.<构建之法>提问 1.需求是什么?需求的规范需要明确吗? 2.一个人开发效率非常高,多人开发,个人效率随团队人数上升而直线下降,我们一般需要将大项目拆为小项目,使协作耦合产生的效率负影 ...
- Oracle系列(三): 情景查询一 a表中有个fid字段,逗号分隔开来,b表中有id字段及其他信息,如何关联a表的fid和和b表的id字段查询
现在有两个表,表a中 DOC FID 1 a,b,c 2 a,c,d 表b中 ID KEY a A b B c C d D 怎么联合查询出 DOC FID KEY 1 a,b,c A,B,C 2 a, ...
- JSP中properties文件的路径问题
做练习的时候,写了个properties文件,放在src/servlet/目录下,访问文件问题花了点时间折腾,最终得到解决,记下. 环境:eclipse jee oxygen,tomcat 9.0. ...
- 『编程题全队』Beta 阶段冲刺博客五
1.提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID) (1) 昨天已完成的工作 孙志威: 1.为新建提醒框添加了正则匹配限制 2.添加了新建Reminder的功能 3.初 ...
- SpringMVC一例 是否需要重定向
在ASP.NET MVC下: return view("List") 和 return RedirectToAction("List") 百度知道的最佳答案: ...
- ActiveMQ应用(1)-安装及示例
简介: Apache ActiveMQ ™ 是最流行最强大的开源消息及继承模式服务器.i Apache ActiveMQ 速度快,支持多种语言的客户端及代理,可便捷的使用企业集成模式,完整支持JMS1 ...
- [转帖] ASP ASPX 等知识
asp.asp.net..aspx..ascx..ashx的简单说明 https://www.cnblogs.com/jhcelue/p/6736147.html ASP是动态server页面(Act ...
- [转帖]Marvell兵败中国4G 创始人去职未来几何
Marvell兵败中国4G 创始人去职未来几何 (2016-04-12 09:08:30) 2016年的帖子. http://blog.sina.com.cn/s/blog_1542ef86c0102 ...