题意:求第k大的最多有l个1的n位二进制。

题解:dp[i][j]表示长度为i最多有j个1的二进制有多少种,则有:

状态转移:dp[i][j]=dp[i-1][j]+dp[i-1][j-1],即第i位放1或者0。

边界条件:dp[0][i]=1,dp[i][0]=1。

长度为n,最多m个1的二进制可以分为:

以0开始的一部分,共有dp[n-1][m]个,

和以1开始的一部分,共有dp[n-1][m-1]个。

如果dp[n-1][m]≥k,说明第k大的就在0开始的那一部分的第k大的,

否则就是1开始的那一部分的第k-dp[n-1][m]大的。

问题就转化为求长度n-1,最多m或m-1个1的二进制的第k或k-dp[n-1][m]大的是谁。

/*
TASK:kimbits
LANG:C++
*/
#include<cstdio>
int n,l;
long long dp[][],k;
int main(){
freopen("kimbits.in","r",stdin);
freopen("kimbits.out","w",stdout);
scanf("%d%d%lld",&n,&l,&k);
for(int i=;i<=n;i++)dp[][i]=;
for(int i=;i<=n;i++){
dp[i][]=;
for(int j=;j<=l;j++)
dp[i][j]=dp[i-][j]+dp[i-][j-];
}
for(int i=;i<=n;i++)
if(dp[n-i][l]>=k)printf("");
else{
printf("");
k-=dp[n-i][l];
l--;
}
puts("");
return ;
}

  

【USACO 3.2】Stringsobits (dp)的更多相关文章

  1. 【NOIP模拟题】Incr(dp)

    太水的dp没啥好说的.. #include <cstdio> #include <cstring> #include <cmath> #include <st ...

  2. 【洛谷4933】大师(DP)

    题目: 洛谷4933 分析: (自己瞎yy的DP方程竟然1A了,写篇博客庆祝一下) (以及特斯拉电塔是向Red Alert致敬吗233) 这里只讨论公差不小于\(0\)的情况,小于\(0\)的情况进行 ...

  3. 【noi 2.6_9281】技能树(DP)

    题意:要求二叉树中每个节点的子节点数为0或2,求有N个节点高度为M的不同的二叉树有多少个(输出 mod 9901 后的结果). 解法:f[i][j]表示高度为i的有j个节点的二叉树个数.同上题一样,把 ...

  4. 【noi 2.6_9267】核电站(DP)

    题意:n个数中不能同时选连续m个或以上,问方案数. 解法:f[i][j]表示从前i个中选,到第i个已经连续选了j个.j!=0时,  =f[i-1][j-1] ; j=0时, =f[i-1][0~m-1 ...

  5. 【noi 2.6_2989】糖果(DP)

    题意:求取到总和为K的倍数的糖果的最大值. 解法:用模K的余数作为一个维度,f[i][j]表示在前i种糖果中取到总颗数模K余j的最大总颗数. 注意--f[i-1][j]要正常转移,而其他要之前的状态存 ...

  6. 【noi 2.6_747】Divisibility(DP)

    这题题意与前面的"判断整除"重复了.具体解释可看我这篇的博文. http://www.cnblogs.com/konjak/p/5936738.html 1 #include< ...

  7. 【noi 2.6_9268】酒鬼(DP)

    题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量. 解法:同前一题相似,可以f[i][j]表示前i瓶中连续喝了j瓶的最大酒量.1.f[i][0]=f[i-1][3] ; 2.i=1或2 ...

  8. 【noi 2.6_90】滑雪(DP)

    题意:输出最长下降路径的长度. 解法:f[i][j]表示结尾于(i,j)的最长的长度.由于无法确定4个方位已修改到最佳,所以用递归实现. 1 #include<cstdio> 2 #inc ...

  9. 【noi 2.6_8464】股票买卖(DP)

    题意:N天可买卖2次股票,问最大利润. 解法:f[i]表示前 i 天买卖一次的最大利润,g[i]表示后 i 天. 注意--当天可以又买又卖,不要漏了这个要求:数据较大. 1 #include<c ...

随机推荐

  1. EC笔记:第三部分:14、在资源管理类中小心Copying行为

    场景 上一节实现了智能指针,其中的拷贝构造函数和赋值运算符是通过增加/减少指针的引用计数来操作的.但是如果是管理一个独占资源呢?我们希望在一个资源使用时被锁定,在使用完毕后被释放. #include ...

  2. Android Time类 奇葩的设定

    Android 的Time.MONTH默认是0-11表示1-12月,小白表示坑爹啊,浪费多少精力啊.

  3. [译]Google官方关于Android架构中MVP模式的示例

    概述 该示例(TODO-MVP)是后续各种示例演变的基础,它主要演示了在不带架构性框架的情况下实现M-V-P模式.其采用手动依赖注入的方式来提供本地数据源和远程数据源仓库.异步任务通过回调处理. 注意 ...

  4. Atitit.eclise的ide特性-------abt 编译

    Atitit.eclise的ide特性-------abt 编译 为什么要在Intellij IDEA中使用Eclipse编译器 如果你使用Intellij Idea,你应该考虑使用Eclipse编译 ...

  5. Android EventBus 3.0.0 使用总结

    转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6039221.html 本文出自[赵彦军的博客] 前言 EventBus框架 EventBus是一个通用的叫法 ...

  6. 有主线程发送message给子线程

    通常我们在处理耗时任务时候都会通过新建线程来处理,当任务处理完后通过Handler将结果发送回主线程.比如下面示例: package com.example.testlistener; import ...

  7. 【容器云】传统金融企业的 Docker 实践

    基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安而言,则是基于 Docker 的 Padis 平台.所谓 Padis,全称是 PingAn Distribution ...

  8. adobe air类app 接入腾讯开放平台移动游戏使用带tencent包名前缀的问题

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4209159.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 ------ ...

  9. 谨慎使用Sql server data tool 架构比对排除

      现象:某个架构始终不能更新     VS中使用SSDT很方便,进行架构比对时,可以选择性的更新.但在排除操作上,要相当谨慎.往往排除的并不是一个差异项. 如下图,表或视图的差异,如果有多处,可以选 ...

  10. 原创 C++应用程序在Windows下的编译、链接(四)动态链接

    4动态链接 4.1概述 在静态链接阶段,链接器为PE文件生成了导入表,导出表,符号表,并调整了Call指令后面的操作数,在程序调用的时候,能够直接地或者间接地定位到IAT中的某个位置,在PE文件中,该 ...