【郑轻邀请赛 H】 维克兹的进制转换
【题目链接】:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2134
【题意】
【题解】
设f[i]表示数字i分解为二进制数的方案数;
则
如果i为偶数->则i的最后一位是0
f[i]=f[i/2]+f[i/2-1]
->考虑在最后加1个0或者加1个2
这里i/2-1,减去1实际上是在新加的2借位,因为0变成2之后,整体会+2;则前面需要减去2作为补充;
如果i为奇数
f[i]=f[i/2];
因为i的二进制最后一位为1;
则如果你把它变成0或变成2都会使它变成偶数;
所以只有老老实实地加上1了;
这里的/2操作实际上就是二进制右移一位;把原本的最后一位去掉;
其对应的方案数最后再加上0、1、2;
对应了状态的转移。
【Number Of WA】
1
【完整代码】
#include <bits/stdc++.h>
using namespace std;
#define rep1(i,x,y) for (int i = x;i <= y;i++)
#define LL long long
const int N = 1e7+100;
int n;
int f[N];
int main()
{
//freopen("D:\\rush.txt","r",stdin);
ios::sync_with_stdio(0);
f[0] = 1;f[1]=1;f[2] = 2;
rep1(i,3,10000000)
if (i&1)
{
f[i]=f[i>>1];
}
else//i%2==0
{
f[i]=f[i>>1]+f[(i>>1)-1];
}
int T;
cin >> T;
while (T--)
{
int x;
cin >> x;
cout << f[x]<<endl;
}
return 0;
}
【郑轻邀请赛 H】 维克兹的进制转换的更多相关文章
- zzuli--2134: 维克兹的进制转换(规律)
2134: 维克兹的进制转换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 287 Solved: 63SubmitStatusWeb Board D ...
- JS中的进制转换以及作用
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...
- poj2305-Basic remains(进制转换 + 大整数取模)
进制转换 + 大整数取模一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串-&g ...
- 洛谷P1017 进制转换
洛谷P1017 进制转换 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 \(1*10 ...
- hdoj 2031 进制转换
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- zznu 1068: 进制转换
进制应该属于程序员的看家本事了,也是大家水平告别菜鸟的一个转折,所以进制转换题目是很有意义的, 这个题目是最简单的把二进制数化简成十进制,因为输入有可能有31位,所以无法使用int或者long lon ...
- poj1220:高精度进制转换模板题
今天撸3708 一直奇怪的re 就先放下了,写这个题的过程中学习了一个高精度进制转换,用这个模板写了1220 记录一下: #include <iostream> #include < ...
- poj1220 (高精度任意进制转换)
http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...
- CF 552C 进制转换
http://codeforces.com/problemset/problem/552/C C. Vanya and Scales time limit per test 1 second memo ...
随机推荐
- java调用restful接口的方法
Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法如下: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring的RestTemplate
- JSP-Runoob:JSP 异常处理
ylbtech-JSP-Runoob:JSP 异常处理 1.返回顶部 1. JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方.JSP代码中通常 ...
- Notepad++ - 通过语言格式设置自定义语法高亮颜色
http://blog.csdn.net/onceing/article/details/51554399 Global Styles Indent guideline style 缩进参考线的颜色 ...
- mac 安装 swoole 可能会出现的错误
请先看完之后再操作 一.用pecl安装swoole(没有安装起来) 2018年4月,由于homebrew的变动,导致无法使用brew install的方式安装php的扩展,现在改为用pecl安装,pe ...
- 执行update, insert,delete 语句, 不返回结果集,(类型化参数)
/// <summary> /// 执行update, insert,delete 语句, 不返回结果集,(类型化参数) /// </summary> /// <para ...
- canvas杂记
canvas杂记 canvas标签 <canvas width=600 height=400></canvas> //1. 拿到画布 var canvas = document ...
- 前端h5开发调试神奇vconsole
(1)项目中安装vconcole插件 npm install vconcole (2)在vue项目中main.js中引入插件 import Vconsole from 'vconsole'; cons ...
- Bootstrap3模态框Modal垂直居中样式
1,Bootstrap 模态框插件Bootbox垂直居中样式: <!DOCTYPE html> <html lang="en"> <head> ...
- 【PostgreSQL-9.6.3】临时表
PostgreSQL中的临时表分两种,一种是会话级临时表,一种是事务级临时表.在会话级临时表中,数据可以存在于整个会话的生命周期中,在事务级临时表中的数据只能存在于事务的生命周期中.1. 会话级临时表 ...
- JS高级——词法作用域
作用域 1.js中没有块级作用域 2.如果有块级作用域,那么下面代码将会是undefined undefined <script> for (var i = 0; i < 10; i ...