USACO 3.2 kimbits DP
自己YY了个DP:设f[n][l]为n位数中包含不超过l个1的总个数
f[n][l]=f[n-1][l]+f[n-1][l-1]
然后用_search()从高位向低位扫描即可,tmp记录当前已记下多少个数了(这些数肯定都比第I个小)
一开始f数组的初值YY错了,看了nocow改过来就好了
1 /* 2 PROB:kimbits 3 LANG:C++ 4 */ 5 #include <stdio.h> 6 #include <cstring> 7 int N,L,tmp; 8 long long I; 9 int a[1000]; 10 int f[1000][1000]; 11 12 void _search(int n,int l) 13 { 14 if ((n<=0)||(l<=0)) return; 15 int t1=f[n-1][l],t2=f[n-1][l-1]; 16 if (tmp+t1>=I) 17 { 18 a[n]=0; 19 _search(n-1,l); 20 } 21 else 22 { 23 tmp=tmp+t1; 24 a[n]=1; 25 _search(n-1,l-1); 26 } 27 } 28 29 int main() 30 { 31 freopen("kimbits.in","r",stdin); 32 freopen("kimbits.out","w",stdout); 33 34 scanf("%d%d%lld",&N,&L,&I); 35 36 memset(f,0,sizeof(f)); 37 for (int i=0;i<=N;i++) 38 { 39 f[i][0]=1; 40 f[0][i]=1; 41 } 42 43 for (int i=1;i<=N;i++) 44 for (int j=1;j<=L;j++) 45 if (j>i) 46 f[i][j]=f[i][i]; 47 else 48 f[i][j]=f[i-1][j]+f[i-1][j-1]; 49 // XXXXX = 0XXXX + 1XXXX 50 /* 51 for (int i=1;i<=N;i++) 52 { 53 for (int j=1;j<=N;j++) 54 printf("%d ",f[i][j]); 55 printf("\n"); 56 } 57 */ 58 tmp=0; 59 _search(N,L); 60 61 for (int i=N;i>=1;i--) 62 printf("%d",a[i]); 63 printf("\n"); 64 65 return 0; 66 }
View Code
转载于:https://www.cnblogs.com/pdev/p/4029531.html
USACO 3.2 kimbits DP相关推荐
- USACO 3.2 Stringsobits(DP)
这个题差不多算是记录路径的DP,题目很短,然后本来以为很水的.最近水过习惯了,竟然敲了个暴力,各种TLE,然后换了种方式水,还是水不过去,后台的k很大,所以O(k)的算法是不可能过的.这就开始纠结了, ...
- USACO / Cow Pedigrees(DP)
农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些二叉树有如下 ...
- USACO比赛题泛刷
随时可能弃坑. 因为不知道最近要刷啥所以就决定刷下usaco. 优先级排在学习新算法和打比赛之后. 仅有一句话题解.难一点的可能有代码. 优先级是Gold>Silver.Platinum刷不动. ...
- USACO黄金级 USACO白金级
USACO黄金级 参赛资格:通过银级比赛的选手难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且学生要对数据结构有比较深的了解. USACO信息学奥赛例题和算法金牌部分 ...
- usaco Postal Vans(dp)
是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...
- BSOJ4217 【USACO 2013 Feburary Gold】旅行线路 DP(双路递推)
4217 -- [USACO 2013 Feburary Gold]旅行线路 Description 贝西经营着一家旅行社,一天贝西带着几队游客沿着亚马逊河旅行,河的两边分布着一些景点,每个景点都对应 ...
- ACM 130. [USACO Mar08] 游荡的奶牛(dp+BFS)
130. [USACO Mar08] 游荡的奶牛 ★☆ 输入文件:ctravel.in 输出文件:ctravel.out 简单对比 时间限制:1 s 内存限制:128 MB 奶牛们在被 ...
- 学校作业-Usaco DP水题
好吧,因为USACO挂掉了,所以我写的所有代码都不保证正确性[好的,这么简单的题,再不写对,你就可以滚粗了! 第一题是USACO 2.2.2 ★Subset Sums 集合 对于从 1 到 N 的连 ...
- ACM 131. [USACO Mar08] 奶牛渡河(线性dp)
131. [USACO Mar08] 奶牛渡河 ★☆ 输入文件: cowriver.in 输出文件: cowriver.out 简单对比 时间限制:1 s 内存限制:128 MB F ...
最新文章
- 【记录】常用的vim插件及配置和使用
- 配置一个 MVC 项目时 遇到的
- matlab如何将相近的数据,matlab新手,求帮助!主要是如何将数据和公式导入
- kafka专题:kafka的Topic主题、Partition分区、消费组偏移量offset等基本概念详解
- (22)FPGA比较器设计(第5天)
- 【重磅】App内可直接打开微信小程序,新增内容安全接口等
- 本周没有学习,估计用脑过度...
- 什么叫做支路_家庭电路用什么开关?不同的开关有什么用?主开关用漏保更好吗?...
- 月日加四位尾数编号生成 VB方式
- android 一位小数_android如何保留小数点后x位数字
- 机器学习:self-paced 和 fine-tuning
- gossip协议学习笔记
- window7或8下,U盘安装Centos6.5双系统,问题总结
- perror和strerror的使用和区别
- 亲历校招面试问答【回顾记录】
- 第六诫:应专注一个领域
- EXCEL中的滑动时间窗使用
- centos6.8离线安装HDP
- ESXI中损坏虚拟机数据找回
- 微信小程序制作楼栋鸟瞰分布图
热门文章
- 【UVA624 01背包中的路径问题】
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- [解析]多线程加锁Lock调用python2
- linux内核 header.s,Linux启动代码header.S研究
- 通俗讲解 RESTful
- 记录ASP.NET CORE 3 部署过程
- 和 Houdini, CSS Paint API 打个招呼吧
- Objective-C RunTime 学习笔记 之 AutoReleasPool
- {ldelim},{rdelim} - smarty 内建函数
- SQL Developer更改日期显示格式