Secret Cow code(USACO)
2024-08-24 12:24:23
题目描述:zxyer为了防止他的标程被别人抄走,他在计算机中的rar文件上设置了一个密码,其中每一个密码都有一个初始字符串,字符串由大写字母组成,且长度不超过30位,每一个密码还有一个询问,询问为一个整数n,表示询问当前第n位的字符为哪个字母。
字符串的加密过程如下:假设原字符串有n位,将原始字符串的第n位拿出,将该字母变成新的字符串的第一个字母,然后再将原始字符串的前n-1位放在新字符串的第2~n位,最后再将旧字符串与新字符串合并(即把新字符串放在旧字符串后面),加密过程可进行无限次。
很不巧的是,zxyer忘记了自己设置的密码,无奈的他只好请你来帮忙求出密码。
输入:一个不多于30位的由大写字母组成的字符串,表示密码的初始字符串,接下来是一个整数N,表示询问第N位的字母是什么。
输出:一个大写字母,表示第N位的字母。
样例输入:
COW 8
样例输出:
C
样例解释:
COW -> COWWCO -> COWWCOOCOWWC
————————————————我是分割线————————————————
很显然的DP题啊,自己找规律,发现只要每次找到长度*2^n(n为2^n*长度不超过N的最大整数)然后把N-(2^n+1)即可,如果N=0则+原始长度
#include<cstdio>
#include<cstring>
#define MN 30
using namespace std;
char ch[MN];
long long n;
long long i;
int num;
int main(){
freopen("code.in","r",stdin);
freopen("code.out","w",stdout);
scanf("%s",ch);
scanf("%lld",&n);
num=strlen(ch);
while(n>num){
i=num;
while(n>(i<<))i<<=;
n-=(i+);
if(n==)n=i;
}
printf("%c\n",ch[n-]);
fclose(stdin);
fclose(stdout);
}
最新文章
- CI Weekly #10 | 2017 DevOps 趋势预测
- Ajax在静态页面中向指定url发送json请求获取返回的json数据
- Jquery动态操作checkbox
- .Net消息队列的使用
- salesforce 零基础学习(二十八)使用ajax方式实现联动
- 如何设计一个RPC系统
- Maven(1)-安装和配置
- java IO复习(二)
- UML进行Linux内核调试
- 非阻塞IOserver型号
- SQL AlawaysOn 之四:故障转移集群
- VMware虚拟化解决方案】如何选择虚拟化产品
- 用python3读CSV文件,出现UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode byte 0xd0 in position 0: invalid con
- web前端图片上传
- Unity 常用插件1
- dubbo配置多个注册中心
- Spark交互式工具spark-shell
- 元素的定位tag_name,link_text,class_name
- 从0学习JQ
- 二、springboot配置
热门文章
- B1076 Wifi密码 (15分)
- 2 http协议
- android 事件拦截 (Viewpager不可以左右滑动)
- Java从后台重定向(redirect)到另一个项目的方法
- Win10开始菜单中的天气不更新问题的解决方法
- IntelliJ IDEA 注释模版 输入/**后 不显示配置好的模板
- Leetcode 659.分割数组为连续子序列
- URAL 1942 	Attack at the Orbit
- 【转】Unity3D 关于贝赛尔曲线,平滑曲线,平滑路径,动态曲线
- ubuntu16.04 搭建nexus+maven 学习