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

D - Strange Mirroring(AtCoder Beginner Contest 380)

题目链接:

D - Strange Mirroring (atcoder.jp)

题目描述:

数据范围:

 样例输入:

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

样例输出:

a B A b A b a B A b a B a B A b

样例解释:

分析:

每一次询问的大小极限是:1e18,是非常大的。读题发现每次转换后拼接之后 长度就 * 2 了。

考虑用 dfs 递归 的往下找下去,什么时候终止dfs呢?那就是当长度 <= s.size()的时候 然后带上去 每次带上去的时候要转换一下大小写,^ 32 把大写的转换为小写的 把小写的转换为大写的。每一次dfs都会砍掉一半,类似于二分,最多60次不到就能达到极限 1e18。

代码: 

#include<bits/stdc++.h>
#define int long long

using namespace std;

string s;

char dfs(int x) {
	// x小于等于 长度时 注意:x的长度是从1开始的 s的下标是从0开始的 
	if(x <= s.size() ) {
		return s[x - 1];
	}
	int len = s.size();
	while(len * 2 < x) {
		len = len * 2;
	}
	// 其中 ^ 32是转化大小写的 
	return (char)((int)(dfs(x - len)) ^ 32);
}

signed main() {
	cin >> s;
	int t;
	cin >> t;
	while(t -- ) {
		int x;
		cin >> x;
		cout << dfs(x) << " ";
	}
	return 0;
}

http://www.kler.cn/a/402050.html

相关文章:

  • Django数据库迁移与反向迁移处理方案分析
  • Redis配置主从架构、集群架构模式 redis主从架构配置 redis主从配置 redis主从架构 redis集群配置
  • 向量数据库FAISS之五:原理(LSH、PQ、HNSW、IVF)
  • https(day30)
  • Pandas-3:数据输入与输出
  • 一文了解 inductive bias(归纳偏好)
  • ServletConfig、ServletContext、HttpServletRequest与HttpServletResponse常见API
  • 记录———封装uni-app+vant(u-upload)上传图片组件
  • windows C#-编写 C# LINQ 查询(上)
  • IPv6 NDP 记录
  • vue2侧边导航栏路由
  • 三、计算机视觉_02计算机视觉领域的四大基本任务
  • AI 无人直播常见问题剖析:轻松一键开播,畅行智能直播新时代
  • 第T8周:Tensorflow实现猫狗识别(1)
  • Python Web 开发的路径管理艺术:FastAPI 项目中的最佳实践与问题解析20241119
  • Jmeter中的后置处理器(三)
  • CH02_泛型
  • 分析 Vue 3 页面数据加载延迟问题
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.11.18)
  • jmeter--CSV数据文件设置--请求体设置变量
  • Linux system-timesyncd同步机制梳理
  • Deep-Live-Cam -面部交换、视频深度伪造
  • 【Java系列】Spring Boot 配置Spring Native 详细步骤
  • 现代分布式系统新法宝:基于单元的架构
  • jEasyUI 创建异步提交表单
  • Postman之安装及汉化基本使用介绍