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过去。。

数学从小不好的伤不起。。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 蓝牙连接不上怎么办 蓝牙开不了机怎么办 蓝牙耳机听不了怎么办 路虎车门打不开怎么办 蓝牙连接声音小怎么办 手机丢在高铁上怎么办 电信卡注销欠费怎么办 手机和卡都丢了怎么办 老干妈打不开盖子怎么办 苹果键盘电池仓打不开怎么办 苏泊尔电压力锅打不开盖子怎么办 honorv9声音太小怎么办 异地手机卡丢了怎么办 中国移动卡丢了怎么办 mate8麦克风坏了怎么办 qq空间被禁赞了怎么办 苹果老耳机模式怎么办 华为手机无声音怎么办 华为手机声音不正常怎么办 带耳机不能说话怎么办 耳机说话没声音怎么办 手机耳机说话没声音怎么办 不接爸爸电话怎么办 耳机自动调高怎么办 手机扩音器坏了怎么办 耳机有电流麦怎么办 耳机自动调音量怎么办 耳机接口总是坏怎么办 漫步者耳机音量太大怎么办 华为录音声音小怎么办 耳机自己调音了怎么办 主驾驶升降失灵怎么办 蓝牙耳机音质差怎么办 苹果不兼容耳机怎么办 唱歌耳机声音小怎么办 耳机声音小是怎么办 手机出现耳机模式怎么办 荣耀8上网慢怎么办 空调满尘了怎么办 设置了耳机模式怎么办 头戴式耳机断了怎么办