Binary Lexicographic Sequence_简单DP
来源:互联网 发布:ipad怎么登陆淘宝卖家 编辑:程序博客网 时间:2024/06/05 11:29
这道题要求给出第 K (0 < K < 109) 个 N (0 < N < 44) 位二进制数,该二进制数不得有相邻的“1”。由于时间限制是 0.5 秒,肯定不能使用蛮力搜索从 1 列举到 K。
我们以 N = 5 来分析看看有没有什么规律。如左图所示,我们发现该二进制数最左边的“1”开始在第几个数之后出现是很规律的,如下所示(左图中红色粗框中的数):
1, 2, 3, 5, 8, 13, ...
也就是说,后项等于前二项之和。这不正是扔掉第一项后的斐波那契 ( Fibonacci ) 数列吗?
#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <iostream>using namespace std;int f[44];int main(){ #ifdef LOCAL //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); #endifint N, K;f[0] = 1;f[1] = 2;f[2] = 3;for(int i = 3; i <= 43; i++){ f[i] = f[i - 1] + f[i - 2];}while(scanf("%d%d", &N, &K) != EOF){ if(K > f[N]) printf("-1\n"); else{ while(N>0){ if(K <= f[N - 1]) putchar('0'); else{ putchar('1'); K -= f[N - 1]; } N--; } putchar('\n'); }}return 0;}
- Binary Lexicographic Sequence_简单DP
- URAL 1081. Binary Lexicographic Sequence(简单dp)
- 1081. Binary Lexicographic Sequence(dp)
- ural Binary Lexicographic Sequence (dp + dfs)
- Ural 1081 Binary Lexicographic Sequence(DP)
- Binary Lexicographic Sequence
- Ural 1081. Binary Lexicographic Sequence
- ural 1081 Binary Lexicographic Sequence
- Timus 1081. Binary Lexicographic Sequence
- ural 1081. Binary Lexicographic Sequence
- Ural 1081 Binary Lexicographic Sequence
- Ural 1081. Binary Lexicographic Sequence
- HDU_4915_Parenthese sequence_维护最小值最大值的DP
- timus 1081. Binary Lexicographic Sequence URAL 解题报告
- URAL 1081 Binary Lexicographic Sequence (递推 + 递归)
- Lexicographic permutations
- sequence_单调队列, connon_DP
- POJ_1019_Number Sequence_二分搜索
- android 得到cpu当前运行频率
- u盘安装ubuntu11.10
- 提高tomcat的JVM内存
- 反卷积效果演示
- Service初步
- Binary Lexicographic Sequence_简单DP
- http://acm.nyist.net/JudgeOnline/problem.php?pid=3
- 新浪旧事-设置action为welcomefile
- 新浪旧事-MyEclipse8.5安装svn
- 3D Doctor软件的反卷积演示
- 新浪旧事-webwork、webwork+spring和webwork+spring+hibernate
- java获取当前的操作系统类型
- Android的intent之间复杂参数的传递
- spring security的使用