openjudge noi 2987 小兔子捡金币(模拟)

OpenJudge-NOI-1.5.31-开关灯 开关灯 阅读详情

go to the problem

总时间限制: 1000ms 内存限制: 65536kB

描述

在一个游戏中,小兔子可以捡金币。它会一边走一边捡掉经过的金币。当小兔子发现前方没有金币的时候,会自动右转。直到所有金币都被捡走。现在把一个NХN的方型区域内,每一格都摆方好了金币。假设小兔子从左上方第一格开始,往右边走。图示如下:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

捡到的第k个金币会被标记成k,记为该金币的序号。则问第i行,第j列的金币是的序号是什么? (1≤i≤N, 1≤j≤N)

输入

第一行有一个整数K和N, N表示方型区域的大小(1≤N≤10000),而K表示输入坐标的组数。(1≤K≤25)
接下来会有K行,每一行有两上个用空格分隔的整数i和j,表示待求金币的行数和列数。

输出

一共输出K行。每一行输出一个对应坐标下金币的序号。

样例输入

3 4
1 3
2 2
3 3

样例输出

3
13
15

很明显小兔子走的路线是蛇形矩阵。
第一个想法就是模拟。
但是一看数据范围 有25组,N最大一万,肯定会TLE。。。orz。。
又去推公式,结果也推不出来,还是模拟吧!
这次转变思路,不是一个一个格子的走,而是一行一列的走。
在纸上画出一个蛇形矩阵,可以很容易的推出公式来qwq。

对于一个n*m的矩阵中的点 (x,y) ,x表示列,y表示行。
(0< = x < m, 0 <=y < n)

向右走最多可以走到 (n-y-1,y)
向下走最多可以走到(x,x+m-n)
向左走最多可以走到(m-y-1,y)
向上走最多可以走到(x,x+1)

所以,
上代码。_(:з」∠)_

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int N,K,x,y,X,Y,ans;
int main()
{
    scanf("%d%d",&K,&N);
    while(K--)
    {
        scanf("%d%d",&Y,&X);
        --X;--Y;
        x=y=0;
        ans=1;
        while(1)
        {
            if(y!=Y){   ans+=N-y-1-x;   x=N-y-1;}  // r 
            else    {   ans+=X-x;       break;  }
            if(X!=x){   ans+=x-y;       y=x;    }  // d
            else    {   ans+=Y-y;       break;  }
            if(Y!=y){   ans+=x-N+y+1;   x=N-y-1;}  // l
            else    {   ans+=x-X;       break;  }
            if(X!=x){   ans+=y-x-1;     y=x+1;  }  // u
            else    {   ans+=y-Y;       break;  }
        }
        printf("%d\n",ans);
    }
    return 0;
}
【数据结构】第2周 栈与队列 2:栈的基本操作 /********************************************* 基本的栈操作,注意栈空时pop输出error的情况也要把接下来的读完 **********************************************/ 2:栈的基本操作 查看提交统计提问 总时间限制: 1000ms 内存限制: 1000kB 阅读详情

相关推荐

openjudge程序设计与算法C/C++解题大全

openjudge是一个在线编程平台,非常适合初学者学习基础的编程语法,笔者将做过的C/C++语言题目答案汇总在下文,供各位参考。

1843

数据结构与算法B代码编写作业,栈的基本操作,解题报告&AC代码

唔…这道题如果要强行用数组做也很简单…不过既然要小伙伴们练一练栈这货怎么用,那就老老实实地栈着吧…… 广告一枚…第一次尝试边边写代码…感觉还可以…… 回归正题,关于栈的定义,不外乎这些元素:数据存储空间,栈内元素标记以及操作函数。一个比较简明的定义如下面: template class myStack { public: myStack(int x);

堆放杂物 2194

51:古代密码

51:古代密码 总时间限制: 1000ms 内存限制: 65536kB 描述 古罗马帝国有一个拥有各种部门的强大政府组织。其中一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。 替换方法是将所有出现的字符替换成其它的字符。有些字符会替换成它自己。例如:替换规则可以是将'A'

ljf_study的博客 1519

noi-openjudge使用

填写Email,用户名,密码点击注册。输入账号、密码 点击登录。点击登录进入登录页面。

ya888g 3479

OpenJudge 百练 POJ 3750:魔兽世界代码

OpenJudge 3750:魔兽世界 AC代码 #include<iostream> #include <iomanip> using namespace std; int WE[5]/*WarriorElements*/, WF[5]/*WarriorForce*/; void printT(int t); void StartGame(int M, int N, int T); class City; class Warrior { protected: friend cla

Shaw 1132

《机器人学一(Robotics(1))》_台大林沛群 第 3 周 【机械手臂 顺运动学】Quiz 3

的方向,旋转方向与四指弯曲方向相反,为负, α为 -90。的方向,旋转方向与四指弯曲方向相反,为负, α为 -90。bug 的图 要求解的 i 位置有误 两套 题目?B. 第2个 坐标系 的原点位置 不便于 计算;上面的正确,后两题 有误, 不知道问题在哪里。标准部分, 前面的更常用,这种仅作为 了解。还是计算过程中保留两位有效数字 不符合。2、确定 旋转角 α 正负的右手定则。1、确定坐标系方向的右手定则。可相交,距离为 0。A: 右手拇指指向。小数点后两位,不符合。

weixin_46034116的博客 1242

OpenJudge题解——1.4编程基础之逻辑表达式与条件分支

【代码】OpenJudge题解——1.4编程基础之逻辑表达式与条件分支。

Derry2012的博客 1615

Materials Studio多层聚合物建模全流程:从Build Layers到LAMMPS data文件导出避坑指南

本文详细解析了使用Materials Studio构建多层聚合物模型并导出为LAMMPS data文件的全流程。重点剖析了Build Layers工具的核心逻辑、真空层处理技巧,并提供了解决导出过程中Z轴坐标偏移问题的实战方案,特别是如何利用msi2lmp工具的-shift参数进行精准校正,确保模型在LAMMPS中模拟的稳定性和准确性。

hhh00的博客 913

openjudge 1.9.3 不高兴的津津

顺序查找

weixin_60869516的博客 725

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

从零到一:TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南

本文详细介绍了TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南,涵盖硬件连接、软件配置、固件烧录、雷达参数设置及数据处理等关键步骤。通过MATLAB等工具,开发者可高效实现毫米波雷达数据采集,适用于自动驾驶、工业检测等领域。

weixin_29001327的博客 966

OpenJudge noi 2987 小兔子捡金币(模拟)

描述 在一个游戏中,小兔子可以捡金币。它会一边走一边捡掉经过的金币。当小兔子发现前方没有金币的时候,会自动右转。直到所有金币都被捡走。现在把一个NХN的方型区域内,每一格都摆方好了金币。假设小兔子从左上方第一格开始,往右边走。图示如下: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 捡到的第k个金币会被标记成k,记为该金币的序号。则

Loi_yuan的博客 1409

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 495

【OpenJudge NOI】题解目录

【OpenJudge NOI】题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。 本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。 作者:君义_noip 1.1编程基础之输入输 1 Hello, World!:点击这里 2 输出第二个整数:点击这里 3 对齐输出:点击这里 4 输出保留3位小数的浮点数:点击这里 5 输出保留12位小数的浮点数:点击这里 6 空格分隔输

君义NOIP的博客 7万+

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5169

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册

微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅

XiaoqiangClub的博客 2303

OpenJudge中Python程序设计及实现 答案

print(f"{n}*3+1={n * 3 + 1}") 格式化输出,但是需要注意顺序。,也称为欧几里德算法,是求两个数的最大公约数的一种常用方法。注意避免出现 string类型和int类型 判断是否相等的情况。在条件判断处 很容易因为这个问题尽管判断逻辑是正确的但是最后找不到结果。使用 ”in“ ”not in"判断子串。会出现RuntimeError。这个是可以通过的版本。注意避免这样子的写法。

chunchun的博客 3634

【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码

1 简介 心电信号可以用来检测和诊断心脏疾病,心电信号在采集时经常受到呼吸活动、身体运动和皮肤与电极接触不良等影响,因此会产生基线漂移,基线漂移的存在会降低心电信号的质量。所以,在大多数心电信号处理中,包括心律失常的识别、心率变化分析和连续血压测量等,去除基线漂移成为了至关重要的一步。心电信号具有非平稳、非线性的特性,传统的去除心电信号中基线漂移的方法在对心电信号进行去噪时常因去噪过度或者不完全,容易造成大量非线性特征信息的丢失,从而破坏了心电信号本身的动力学特性,这给后续的心电信号信息分析带来了不利影响

qq_59747472的博客 2209

openjudge 1.7.16 忽略大小写的字符串比较

字符数组

weixin_60869516的博客 941

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OpenJudge

下面整理了一些我做OpenJudge遇到的一些不错的题。

西瓜的博客 2415

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OpenJudge题解——1.6编程基础之一维数组

OpenJudge题解——1.6编程基础之一维数组

weixin_43100558的博客 9145

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

openjudge算法题总结

openjudge算法题总结

qq_48907036的博客 1148

OpenJudge超详细题解,动画图文题解

内容来源于微信公众号:大神编程。已经过原文作者授权。 更新时间:2020-7-5 因为OpenJudge题库和一本通题库很多题都是一样,所以很多链接都是直接使用一本通的题解,完全不影响。 为什么要转载: 动画、图文结合。 我看了部分文章,一些我觉得很简单的题,但从中学到了以前没有学过的知识点和细节,重点是从中学习别人思维方式。 让更多的同学能学到更多的知识。 官方的QQ群:893157498 这是我建的QQ群:795233394 欢迎各位志同道合的同学们^_^ 已更新的题目颜色是蓝色,点击相

3万+

信息学奥赛一本通 1231:最小新整数 | OpenJudge NOI 4.6 3528:最小新整数

【题目链接】 ybt 1231:最小新整数 OpenJudge 4.6 3528:最小新整数 【题目考点】 1. 贪心 【解题思路】 该题与信息学奥赛一本通 1321:【例6.3】删数问题(Noip1994) | 洛谷 P1106 删数问题 是同一问题,具体思路可以参考上一题。 本题的区别点在于: 数字长度仅为10位左右 所有数字都不为0,也就不用考虑前导0的问题了。 有多组数据,注意变量清空。 【题解代码】 解法1:每次找k+1个数中的最小值 #include<bits/stdc++.h>

君义NOIP的博客 1492

OpenJudge题解——1.1编程基础之输入输出

OpenJudge题解——1.1编程基础之输入输出

weixin_43100558的博客 1677

openjudge 1.5.31 开关灯

循环结构

weixin_60869516的博客 1163
上一篇: openjudge noi 1805 碎纸机
下一篇: codevs 1017 乘积最大
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值