洛谷P3612 [USACO17JAN]Secret Cow Code秘密奶牛码
来源:互联网 发布:java list map 编辑:程序博客网 时间:2024/05/22 04:29
题目描述
The cows are experimenting with secret codes, and have devised a method for creating an infinite-length string to be used as part of one of their codes.
Given a string
Given the initial string and an index
奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。
给定一个字符串,让后面的字符旋转一次(每一次正确的旋转,最后一个字符都会成为新的第一个字符)。也就是说,给定一个初始字符串,之后的每一步都会增加当前字符串的长度。
给定初始字符串和索引,请帮助奶牛计算无限字符串中位置N的字符。
输入输出格式
输入格式:
The input consists of a single line containing a string followed by
Note that
第一行输入一个字符串。该字符串包含最多30个大写字母,并
第二行输入
输出格式:
Please output the
请输出从初始字符串生成的无限字符串中的位置的字符。第一个字符是
输入输出样例
输入样例#1:
COW 8
输出样例#1:
C
说明
In this example, the initial string COW expands as follows:
COW -> COWWCO -> COWWCOOCOWWC
12345678
感谢@y_z_h 的翻译
考试做的题……一开始在考场上想的是递归分治,结果因为longlong然后爆栈了.分治的思想还是很好想的显然我们可以把当前串分成两部分一个是原串,一个是操作串,操作串实际是由原串整体后移一位得到的,那么就是
放上代码
#include <iostream>using namespace std;string s;long long n,temp=1,l;int main(){ cin>>s>>n; l=s.length(); for(temp=l;temp<=n;temp<<=1);//原串的长度每次翻倍 temp>>=1; n-=1;//一定要减一,因为sting从0开始 while(temp>=l){ if(n>=temp){ n-=temp; if(n==0)n=temp-1; else n-=1; } temp>>=1; } cout<<s[n%l]<<endl; return 0;}
- 洛谷P3612 [USACO17JAN]Secret Cow Code秘密奶牛码
- USACO17JAN Cow Navigation 奶牛导航
- 洛谷 P3102 [USACO14FEB]秘密代码Secret Code 【区间dp】
- ZJNU 1900 Secret Cow Code 想法题 倒推
- 【USACO14FEB】洛谷3102 Secret Code
- 洛谷 P1472 奶牛家谱 Cow Pedigrees
- 洛谷 P1472 奶牛家谱 Cow Pedigrees
- 【DP】洛谷 P1472 奶牛家谱 Cow Pedigrees
- The Secret[秘密,读后感]
- dp——洛谷 P1472 奶牛家谱 Cow Pedigrees
- Cow code
- zy的秘密(secret)
- 《秘密The Secret》读书杂记
- Top Secret Microsoft Code
- Android Secret Code
- Android Secret Code
- Android Secret Code
- hdu 1111 Secret Code
- 基于HTML5的简单的面向对象的图表库
- Mac OS 下解决Clion不能用<bits/stdc++.h>头文件的方法。
- The given object has a null identifier:
- struts2请求过程源码分析
- HDU
- 洛谷P3612 [USACO17JAN]Secret Cow Code秘密奶牛码
- java算法之基数排序
- 剑指Offer_面试题24_二叉搜索树的后序遍历序列
- [MM] 多边形碰撞
- 步进电机和减速电机的区别
- sigqueue与kill详解及实例
- 利用Python构建时间序列模型解决实际问题的正确姿势
- opencv形态学理解
- java,javascript,jquery,vue 取(2-32)随机数。