UVa 11121 - Base -2
题目:计算以-2为基数的数的表示。
分析:数论。写出不同位数能表示的数字区间就能够找到规律。
长度为1:[1,1]; 长度为2:[-2,-1]; 长度为3:[2,5];
观察发现,区间长度增长为1,2,4,8,..,2^k,而且奇偶间隔开;
这样能够按顺序找到相应的1的位置,每次减去相应的基底(-2^k)寻找下一个1的位置就可以。
说明:又是数论。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio> using namespace std; long long l[40],r[40],b[40];
int ans[40]; int main()
{
l[0] = 1; r[0] = 1; b[0] = 1;
l[1] = -2;r[1] = -1;b[1] = -2;
long long base = 4;
for (int i = 2 ; i < 33 ; ++ i) {
if (i%2) {
r[i] = l[i-2]-1;
l[i] = l[i-2]-base;
}else {
l[i] = r[i-2]+1;
r[i] = r[i-2]+base;
}
base <<= 1;
b[i] = b[i-1]*-2;
} int n,m,s,e;
while (~scanf("%d",&n))
for (int i = 1 ; i <= n ; ++ i) {
scanf("%d",&m);
printf("Case #%d: ",i); for (int i = 0 ; i < 33 ; ++ i)
ans[i] = 0;
s = 32;
while (s >= 0) {
if (m >= l[s] && m <= r[s]) {
ans[s] = 1;
m -= b[s];
}
s --;
} e = 32;
while (e > 0 && !ans[e]) e --;
while (e >= 0) printf("%d",ans[e --]);
printf("\n");
}
return 0;
}
UVa 11121 - Base -2的更多相关文章
- UVA题目分类
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics ...
- UVa 10473 - Simple Base Conversion
题目大意:十进制与十六进制之间的相互转换. #include <cstdio> int main() { #ifdef LOCAL freopen("in", &quo ...
- .Uva&LA部分题目代码
1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...
- UVA 437 十九 The Tower of Babylon
The Tower of Babylon Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Subm ...
- UVA 1456 六 Cellular Network
Cellular Network Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit S ...
- Uva 10007 / HDU 1131 - Count the Trees (卡特兰数)
Count the Trees Another common social inability is known as ACM (Abnormally Compulsive Meditation) ...
- UVa 10969 (圆与圆之间的覆盖问题) Sweet Dream
题意: 有n个按先后顺序放置的不同大小不同位置的圆,求所有可见圆弧的长度. 分析: 这道题应该是大白书上例题 LA 2572 (求可见圆盘的数量) Kanazawa 的加强版,整体框架都差不多. 对于 ...
- POJ-3070Fibonacci(矩阵快速幂求Fibonacci数列) uva 10689 Yet another Number Sequence【矩阵快速幂】
典型的两道矩阵快速幂求斐波那契数列 POJ 那是 默认a=0,b=1 UVA 一般情况是 斐波那契f(n)=(n-1)次幂情况下的(ans.m[0][0] * b + ans.m[0][1] * a) ...
- UVA 11774 - Doom's Day(规律)
UVA 11774 - Doom's Day 题目链接 题意:给定一个3^n*3^m的矩阵,要求每次按行优先取出,按列优先放回,问几次能回复原状 思路:没想到怎么推理,找规律答案是(n + m) / ...
随机推荐
- 了解HTML5和“她”的 API (三)
Web Workers(后台线程) JavaScript是单线程的,较长的javascript运算会阻塞UI线程. web worker 是运行在后台的 JavaScript,不会影响页面的性能. 在 ...
- IOS-QQ登陆之苹果程序流程
1.新建项目,通过main函数循环执行代码,直到应用被关闭. 2.点击项目,建立storyboard文件,并在info文件夹中指定第一个storyboard文件 3.建立Controller文件. 组 ...
- Machine Learning—Linear Regression
Evernote的同步分享:Machine Learning-Linear Regression 版权声明:本文博客原创文章.博客,未经同意,不得转载.
- Android决议具体解释
1.Android手机常见的分辨率 WVGA:800x480 FWVGA:854x480 QHD:960x540 720P:1280x720(SD.standard definition,SD) 10 ...
- Linux 的 Shell
一个:Shell 概念 shell 这个词是不奇怪,意思是 "壳" 这是间OS 用户和芯层之间的相互作用,在linux系统.用户可以通过命令终端.使用shell 命令向下传达他们的 ...
- Unity3D合并着色器
unity 3d倒每次模型更多的是一种着色器.我可以拥有这些车型共享的地图想分享一个着色器.所以每次删除,然后附加,很麻烦.如何才能合并这些着色器? 采纳TexturePacking对 1.遍历gam ...
- navicat如何导入sql文件
工具--数据的传输--文件 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- js之第三方工具解析JSON
1.JSON 仅仅是一种文本字符串.它被存储在 responseText 属性中 为了读取存储在 responseText 属性中的 JSON 数据,须要依据 JavaScript 的 eval 函数 ...
- atitit.无损传输二进制数据串传输网络
atitit.无损传输二进制数据串传输网络 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 1 2. base64 2 3. iso-8859-1 (推荐) 2 4. utf-8 ...
- 高通公司 MSM8K GPT异常原因分析无法开机的问题
问题分析过程如下面: 一. MSM8916台gpt概率问题:采用QPST emmc software download下载软件工具后,无法开机.例如下面的附图: log分析是userdata分区未成功 ...