Timus 1081. Binary Lexicographic Sequence
来源:互联网 发布:采购流程优化 编辑:程序博客网 时间:2024/05/16 05:41
import java.io.*;import java.math.BigInteger;import java.util.*; public class Main { public static void main (String [] args) throws Exception { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int k = scan.nextInt(); int dp[] = new int[n+1]; dp[0] = 1; dp[1] = 1; int sum[] = new int[n+1]; sum[0] = 1; sum[1] = 2; for(int i=2;i<=n;i++){ dp[i] = sum[i-2]; sum[i] = sum[i-1]+dp[i]; } if(k>sum[n]){ System.out.println(-1); }else{ String result=""; int t = k; for(int i=n;i>=1;i--){ if(sum[i]>=t&&sum[i-1]<t){ result+="10"; t-=(dp[i]+dp[i-1]); i--; }else{ result+="0"; } } System.out.println(result.substring(0, n)); } }}
一个数学感偏重的DP题。
DP[i] 记录了长度为i 的二进制数的个数(前缀的一串0不算长度)
然后观察规律推,推完了回溯出串具体是什么
代码最后写得有点勉强,强行截取前N个字符,因为最后可能会多0
上网看了一下报告,写得比较清楚,这个代码写得比较烂。。。总算能A过去。。
数学从小不好的伤不起。。
- Timus 1081. Binary Lexicographic Sequence
- timus 1081. Binary Lexicographic Sequence URAL 解题报告
- Ural 1081. Binary Lexicographic Sequence
- 1081. Binary Lexicographic Sequence(dp)
- ural 1081. Binary Lexicographic Sequence
- Ural 1081. Binary Lexicographic Sequence
- URAL 1081. Binary Lexicographic Sequence(简单dp)
- Binary Lexicographic Sequence
- ural 1081 Binary Lexicographic Sequence
- Ural 1081 Binary Lexicographic Sequence
- ural Binary Lexicographic Sequence (dp + dfs)
- Ural 1081 Binary Lexicographic Sequence(DP)
- URAL 1081 Binary Lexicographic Sequence (递推 + 递归)
- Binary Lexicographic Sequence_简单DP
- Timus 1183. Brackets Sequence
- Pseudorandom binary sequence
- Lexicographic permutations
- Timus Online Judge 1018 Binary Apple Tree(树型dp)
- ORACLE的工作机制
- TMyUniDBGrid.SelectedField
- VC窗口透明
- QWS透明后鼠标移动出现阴影现象解决办法
- 关于storm-0.8.2框架与github中storm-starter工程不兼容的疑问
- Timus 1081. Binary Lexicographic Sequence
- ubuntu下使用git
- android学习(1)
- 华为交换机配置命令
- HDOJ--4323--Magic Number【编辑距离】
- 电信手机营销方案
- uva10892
- 利用jQuery做的导航条菜单
- 输入数字n,按顺序输出从1到最大的n位10进制数