这个题差不多算是记录路径的DP,题目很短,然后本来以为很水的。最近水过习惯了,竟然敲了个暴力,各种TLE,然后换了种方式水,还是水不过去,后台的k很大,所以O(k)的算法是不可能过的。这就开始纠结了,开始的时候有想过是不是DP问题,状态转移很容易发现,不过这个题目是求第k大的,然后尝试用DP写了写,挂在一个大数据了,不好检查,自己出了几个数据,检查出了BUG,如果确定了第i位为1之后,再更新的时候sum[i]数组,在最后一次改了int之后,终于过了!!!

 1 /*
 2    ID: cuizhe
 3    LANG: C++
 4    TASK: kimbits
 5 */
 6 #include <iostream>
 7 #include <cstdio>
 8 #include <cstring>
 9 #include <map>
10 using namespace std;
11 long long dp[60][60],sum[50];
12 int o[50];
13 int main()
14 {
15     int i,j,z;
16     long long n,m,k;
17     freopen("kimbits.in","r",stdin);
18     freopen("kimbits.out","w",stdout);
19     scanf("%lld%lld%lld",&n,&m,&k);
20     dp[1][1] = 1;
21     dp[1][0] = 1;
22     for(i = 2; i <= n; i ++)//状态转移
23     {
24         dp[i][0] = dp[i-1][0];
25         for(j = 1; j <= i&&j <= m; j ++)
26         {
27             dp[i][j] += dp[i-1][j];//第i位是0
28             dp[i][j] += dp[i-1][j-1];//第i位是1
29         }
30     }
31     z  = 1;
32     while(k&&z)
33     {
34         memset(sum,0,sizeof(sum));
35         if(k == 1)
36         {
37             break;
38         }
39         for(i = 1; i <= n; i ++)//这里写的效率不是很高,DP的复杂度很小就无所谓了。
40         {
41             for(j = 0; j <= i&&j <= m; j ++)
42                 sum[i] += dp[i][j];
43         }
44         for(i = n; i >= 1; i --)
45         {
46             if(k > sum[i])
47             {
48                 o[i+1] = 1;
49                 k -= sum[i];
50                 m --;
51                 break;
52             }
53             else if(k == sum[i])
54             {
55                 for(j = i; j >= i-m+1&&j >= 1; j --)
56                     o[j] = 1;
57                 z = 0;
58                 break;
59             }
60         }
61     }
62     for(i = n; i >= 1; i --)
63         printf("%d",o[i]);
64     printf("\n");
65     return 0;
66 }

转载于:https://www.cnblogs.com/naix-x/archive/2012/11/19/2778010.html

USACO 3.2 Stringsobits(DP)相关推荐

  1. USACO / Cow Pedigrees(DP)

    农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些二叉树有如下 ...

  2. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  3. Perfect service(树形dp)

    Perfect service(树形dp) 有n台机器形成树状结构,要求在其中一些机器上安装服务器,使得每台不是服务器的计算机恰好和一台服务器计算机相邻.求服务器的最小数量.n<=10000. ...

  4. 子矩阵(暴搜(全排列)+DP)

    子矩阵(暴搜(全排列)+DP) 一.题目 子矩阵 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 [提交][状态][讨论版] 题目描述 给出如下定义: 1. 子矩阵:从一 ...

  5. 求三角形最大面积(DP)

    求三角形最大面积(DP) 在OJ上奇迹般WA了:WA:70. Why? #include <iostream> #include <string.h> using namesp ...

  6. 最大搜索二叉子树大小(树形dp)

    给定一颗二叉树的头节点head,返回这棵二叉树中最大的二叉搜索子树 (二叉搜索树:该二叉树中左子树所有节点比它小,右子树所有节点比它大 ): 思路: 这是一道分析可能性求解在二叉树上做类似动态规划的问 ...

  7. 形态形成场(矩阵乘法优化dp)

    形态形成场(矩阵乘法优化dp) 短信中将会涉及前\(k\)种大写字母,每个大写字母都有一个对应的替换式\(Si\),替换式中只会出现大写字母和数字,比如\(A→BB,B→CC0,C→123\),代表 ...

  8. HDU 1520 Anniversary party(树形dp)

    HDU 1520 Anniversary party(树形dp) 树形dp第一题!!! 题意很清晰,思路也很明确.很容易找到根节点,即最大的boss,通过根节点向下dp. 状态转移方程: int to ...

  9. 「SDOI2016」储能表(数位dp)

    「SDOI2016」储能表(数位dp) 神仙数位 \(dp\) 系列 可能我做题做得少 \(QAQ\) \(f[i][0/1][0/1][0/1]\) 表示第 \(i\) 位 \(n\) 是否到达上界 ...

最新文章

  1. kubernetes API Server 权限管理实践
  2. 【错误记录】Google Play 上架报错 ( 您的应用包含违反“元数据”政策的内容 | GP 政策中心 )
  3. Python基础入门:高效的集合操作
  4. React总结篇之六_React高阶组件
  5. 娱乐项目和女朋友哪个重要?
  6. Java自学笔记(16):常用类:Math,Data和Calender,Format,Scanner
  7. 适用于各类软件工具下载页面官网单页静态网站源码
  8. java oo 封装_javaOO——封装、static、成员内部类
  9. Java基础学习总结(96)——Java虚拟机JVM及Tomcat中的JVM有关内存的设置与调优
  10. 首个完全武器化的 Spectre Exploit 现身
  11. 常见算法之12---求a^n%p
  12. Altium Designer 2020 学习笔记(四)------PCB布线、DRC检查、拼版设计、资料输出(配动态图操作演示)
  13. steam令牌 未能连接到服务器,连接错误无法连接到steam网络怎么办 steam网络连接错误解决方法【图文】...
  14. gmail谷歌邮箱开启SMTP
  15. 表单提交时报错:No result defined for action com.ylj.action.BbsAction and result input
  16. jp.ne.so_net.ga2.no_ji.jcom.JComException: createInstance() failed HRESULT=0x800401F3L
  17. 一文读懂自然语言处理NLP
  18. 映美FP-530K+打印发票卡纸
  19. js中导入引用外部js
  20. Uboot中start.S源码的指令级的详尽解析

热门文章

  1. python手机软件-Python爬虫:抓取手机APP的数据
  2. python提高办公效率-用Python的这3个优点,让工作效率提升一倍
  3. python爬虫原理-python爬虫之认识爬虫和爬虫原理
  4. 软件测试用python一般用来做什么-python软件测试
  5. c++强大还是python强大-2020,你该学习Python还是C++
  6. python csv读取-Python对于CSV文件的读取与写入
  7. python培训出来的有公司要吗-python培训机构出来好就业吗
  8. python科学计算基础教程pdf下载-python科学计算 第二版 PDF 下载
  9. 用python处理excel-使用Python操作Excel文档(一)
  10. python对于办公有什么帮助-日常工作中python能够有哪些帮助?