当前位置: 首页 > news >正文

P8925 「GMOI R1-T2」Light 题解

P8925 「GMOI R1-T2」Light

让我们好好观察样例解释的这一张图:

左边第 1 1 1 个像到 O O O 点的距离 : L × 2 = 2 L L\times2=2L L×2=2L

右边第 1 1 1 个像到 O O O 点的距离 : R × 2 = 2 R R\times2=2R R×2=2R

左边第 2 2 2 个像到 O O O 点的距离 :右边第 1 1 1 个像到达 L L L 的距离是 2 R + L 2R+L 2R+L 。而这样子距离 O O O 还差一个 L L L ,最终结果就是 2 L + 2 R 2L+2R 2L+2R

右边第 2 2 2 个像到 O O O 点的距离 :同理可得 2 R + 2 L 2R+2L 2R+2L

递推得到:

左边第 n n n 个像到 O O O 点的距离 :右边第 n − 1 n-1 n1 个像到 O O O 点的距离加上 2 L 2L 2L

右边第 n n n 个像到 O O O 点的距离 :左边第 n − 1 n-1 n1 个像到 O O O 点的距离加上 2 R 2R 2R

然后我们打出一张表:

左边第 n n n 个像到 O O O 点的距离右边第 n n n 个像到 O O O 点的距离
1 1 1 2 L + 0 R 2L+0R 2L+0R 2 R + 0 L 2R+0L 2R+0L
2 2 2 2 L + 2 R 2L+2R 2L+2R 2 R + 2 L 2R+2L 2R+2L
3 3 3 4 L + 2 R 4L+2R 4L+2R 4 R + 2 L 4R+2L 4R+2L
4 4 4 4 L + 4 R 4L+4R 4L+4R 4 R + 4 L 4R+4L 4R+4L

最后找一找系数的规律:

对于左边第 n n n 个像到 O O O 点的距离, L L L 的系数是 2 , 2 , 4 , 4... 2,2,4,4... 2,2,4,4... ,很明显两个一周期。利用向下取整的特性,得到式子:

⌊ n + 1 2 ⌋ × 2 \lfloor\frac{n+1}{2}\rfloor\times2 2n+1×2

R R R 的系数是 0 , 2 , 2 , 4... 0,2,2,4... 0,2,2,4... ,除了第一个外,两个一周期,也可以利用向下取整的特性,得到式子:

⌊ n 2 ⌋ × 2 \lfloor\frac{n}{2}\rfloor\times2 2n×2

最后再乘以各项变量就行了:

⌊ n + 1 2 ⌋ × 2 L + ⌊ n 2 ⌋ × 2 R \lfloor\frac{n+1}{2}\rfloor\times2L+\lfloor\frac{n}{2}\rfloor\times2R 2n+1×2L+2n×2R

注意,由于算的是距离,最后的答案需要取相反数输出:

− ( ⌊ n + 1 2 ⌋ × 2 L + ⌊ n 2 ⌋ × 2 R ) -(\lfloor\frac{n+1}{2}\rfloor\times2L+\lfloor\frac{n}{2}\rfloor\times2R) (⌊2n+1×2L+2n×2R)

对于右边第 n n n 个像到 O O O 点的距离,同理得到:

⌊ n + 1 2 ⌋ × 2 R + ⌊ n 2 ⌋ × 2 L \lfloor\frac{n+1}{2}\rfloor\times2R+\lfloor\frac{n}{2}\rfloor\times2L 2n+1×2R+2n×2L

AC代码:

#include <bits/stdc++.h>
using namespace std;
long long t,l,r;
int main()
{
	scanf("%lld",&t);
	scanf("%lld%lld",&l,&r);
	for(long long i=0;i<t;i++)
	    {
	    	char a;
	    	long long b;
	    	getchar();
	    	scanf("%c%lld",&a,&b);
	    	if(a=='L')printf("%lld\n",-(b+1)/2*2*l-b/2*2*r);
	    	else if(a=='R')printf("%lld\n",(b+1)/2*2*r+b/2*2*l);
		}
	return 0;
}

AC记录

相关文章:

  • 双指针法之移动零(新数组)
  • shell的模拟实现 ─── linux第16课
  • 邮件发送器:使用 Python 构建带 GUI 的邮件自动发送工具
  • 什么是OFD文件?2025年我推荐新版OFD阅读器和PDF阅读器,双合一
  • 【算法方法总结·五】链表操作的一些技巧和注意事项
  • linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.1热点分片识别与均衡策略
  • 闭包函数是什么?
  • 【算法day5】最长回文子串——中心拓展方法
  • mysql安装(演示为mac安装流程)
  • 自动控制原理【知识点总结、复习笔记】
  • 论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)
  • MySQL-----SELECT语句-查询
  • JVM组成面试题及原理
  • 《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》
  • Linux——.sh 多个阶段的串行和并行执行程序
  • 向量内积(点乘)和外积(叉乘)
  • Linux一键安装zsh终端美化插件
  • MySql自动安装脚本
  • JavaEE进阶(2) Spring Web MVC: Session 和 Cookie
  • 做网站的像素是多少/seo和sem的概念
  • 建网站联系/百度新闻搜索
  • 推广引流渠道的论坛/苏州网站关键词优化推广
  • 5星做号宿水软件的网站/天津百度关键词seo
  • 合肥网站设计公司/友链申请
  • 在线做任务的网站有哪些/品牌如何推广