Round A APAC Test 2016 Problem A. Googol String
2015-09-18 11:35
441 查看
Round A APAC Test 2016 Problem A. Googol String
There are two operations that can be performed on a 0/1 string:
switch: Every 0 becomes 1 and every 1 becomes 0.
For example, "100" becomes "011".
reverse: The string is reversed. For example, "100" becomes "001".
Consider this infinite sequence of 0/1 strings:
S0 = ""
S1 = "0"
S2 = "001"
S3 = "0010011"
S4 = "001001100011011"
SN = SN-1 + "0" + switch(reverse(SN-1)).
You need to figure out the Kth character of Sgoogol, where googol = 10100.
完整题目可以去别的地方找,我的解法如下:
设位置k的字符是B[k],k从1开始
B[k]以下性质
1. 处在2次幂位置的数必定为0
2. 如果k是偶数,B[k]=B[k/2]
3. 如果k是奇数,k=2i+1,B[k]=i%2
下面简单证明下这三个性质
Problem
A "0/1 string" is a string in which every character is either 0 or 1.There are two operations that can be performed on a 0/1 string:
switch: Every 0 becomes 1 and every 1 becomes 0.
For example, "100" becomes "011".
reverse: The string is reversed. For example, "100" becomes "001".
Consider this infinite sequence of 0/1 strings:
S0 = ""
S1 = "0"
S2 = "001"
S3 = "0010011"
S4 = "001001100011011"
SN = SN-1 + "0" + switch(reverse(SN-1)).
You need to figure out the Kth character of Sgoogol, where googol = 10100.
完整题目可以去别的地方找,我的解法如下:
<pre name="code" class="cpp">cin >> k; if (!(k& k - 1)) k = 0; else { while (k > 0 && ((k & 0x01) == 0)) k >>= 1; k >>= 1; k &= 0x01; } cout << k;
设位置k的字符是B[k],k从1开始
B[k]以下性质
1. 处在2次幂位置的数必定为0
2. 如果k是偶数,B[k]=B[k/2]
3. 如果k是奇数,k=2i+1,B[k]=i%2
下面简单证明下这三个性质
相关文章推荐
- Ubuntu 14.04 LTS下安装Google Chrome浏览器
- GoLang学习 -- goroutine使用指南
- django 1.8 官方文档翻译:13-6 分页
- 微软:我家的深度学习超越了人类和Google
- Mac 终端里神秘的 bogon 及解决方法
- 解决Django发送中文邮件时的编码及乱码问题
- VIEWGOOD(远古)政府、企业集团多媒体培训系统方案分析
- 人性化:谷歌员工可相互借用假期
- Golang适合高并发场景的原因分析
- 有关google的guava工具包详细说明
- google chrome插件开发,自己动手,丰衣足食
- mongo
- ubuntu安装google chrome浏览器
- Spatial Pyramid Matching for Recognizing Natural Scene Categorie(阅读)
- 理解Go语言中的函数闭包
- Golang中new和make的区别
- Ubuntu 安装fcitx-googlepinyin
- django1.6 GET url传参 乱码
- django1.6 django-dajaxice的安装配置.
- django1.6 static staticfile