题目3 : 末尾有最多0的乘积

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

给定N个正整数A1, A2, ... AN。

小Hi希望你能从中选出M个整数,使得它们的乘积末尾有最多的0。

输入

第一行包含两个个整数N和M。

第二行包含N个整数A1, A2, ... AN。

对于30%的数据,1 ≤ M ≤ N ≤ 12

对于100%的数据,1 ≤ M ≤ N ≤ 100  1 ≤ Ai ≤ 1000000000

输出

末尾最多的0的个数

样例输入
4 2
8 25 30 40
样例输出
3

这个组成0就是2 5的个数,找到5的最大值,去枚举2,或者找5去枚举2都可以的吧

dp[i][j][k]表示第i个数选j个数选k个5的个数的0的个数

#include<bits/stdc++.h>
using namespace std;
int dp[2][105][2005];
int la(int x,int p)
{int t=0;while(x%p==0) x/=p,t++;return t;
}
int main()
{int n,k;cin>>n>>k;memset(dp,-1,sizeof(dp));dp[0][0][0]=0;int cur=0,sum=0,ans=0;for(int i=1,x; i<=n; ++i){cin>>x;int five=la(x,5),two=la(x,2);sum+=five,cur^=1;for(int j=0; j<=i&&j<=k; ++j){for(int k=0; k<=sum; ++k){dp[cur][j][k]=max(dp[cur][j][k],dp[cur^1][j][k]);if(j>=1&&k-five>=0&&dp[cur^1][j-1][k-five]>=0)dp[cur][j][k]=max(dp[cur][j][k],dp[cur^1][j-1][k-five]+two);}}}for(int i=0; i<=sum; i++)ans=max(ans,min(i,dp[cur][k][i]));cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/BobHuang/p/8588063.html

[Offer收割]编程练习赛50相关推荐

  1. 最简真分数c语言,HihoCoder1655 : 第K小最简真分数([Offer收割]编程练习赛39)(唯一分解+容斥定理+二分)(不错的数学题)...

    描述 给一个整数N,请你求出以N为分母的最简(既约)真分数中第K小的是多少? 输入 两个整数N个K. 对于30%的数据,1 <= N <= 1000000 对于100%的数据,1 < ...

  2. ACM学习历程—Hihocoder [Offer收割]编程练习赛1

    比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...

  3. hihocoder offer收割编程练习赛8 B 拆字游戏

    思路: 模拟,dfs. 注意题目中的trick,输出一块的时候不要把其他块也输出了. 实现: 1 #include <cstring> 2 #include <iostream> ...

  4. hiho #1272 买零食 [Offer收割]编程练习赛2

    #1272 : 买零食 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰 ...

  5. [Offer收割]编程练习赛2 hihocoder 1272 买零食 (DFS 或 dp 水题)

    时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著称.第一次去一教小卖 ...

  6. hihocoder 1569 [Offer收割]编程练习赛25 : 无限巧克力谜题

    1569 : 无限巧克力谜题 [ 题目链接 ] 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在网上看到如下无限切分巧克力的方法,百思不得其解,于是去请教小Hi. ...

  7. [Offer收割]编程练习赛63

    命名 暴力 1 #include <bits/stdc++.h> 2 using namespace std; 3 char S[1111], T[1111], a[1111], b[11 ...

  8. hihocoder offer收割编程练习赛11 B 物品价值

    思路: 状态压缩 + dp. 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> ...

  9. hihocoder offer收割编程练习赛12 B 一面砖墙

    思路: 就是求哪个长度出现的次数最多. 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorit ...

最新文章

  1. centos删除系统自带的httpd
  2. 直播APP开发注意事项汇总
  3. stm32非操作系统开发和带uCos的开发的区别,及一些解析
  4. 全文索引 排名计算问题
  5. AjaxControltoolkit学习笔记—PopupControl 使用详解
  6. 面向对象的原型与继承
  7. Django---简单from表单提交
  8. idea toolbar靠右显示
  9. 使用花生壳6.5客户端FTP设置
  10. 图论学习笔记——可达矩阵
  11. Less系列之导入(Importing)
  12. 什么是计算机的用户名和密码,电脑用户名是什么意思
  13. 我国学生被美深泉学院录取 每周20小时放牛种草
  14. 【python+selenium】自动登陆学校青果教务网
  15. 【转】我是这样对待曾经背叛我的女人的!
  16. 中国悍马“猛士”登场,国产电动车为啥掀起了硬派越野风?
  17. Disruptor并发框架,核心组件RingBuffer
  18. OllyDbg 常用快捷键与命令
  19. CGAL 凹包(alpha-Shape)
  20. 拥抱AI,“纳德拉式”的微软复兴之路 | 人工智能观察

热门文章

  1. Linux下使用system()函数一定要谨慎
  2. 【Extjs】 checkboxmodel 中事件处理
  3. 关于 automation服务器对象不能创建
  4. hadoop块的存储方式
  5. open一个页面并关闭父页(小技巧)
  6. MySQL中的共享锁与排他锁
  7. C#复制数组的两种方式,以及效率比较
  8. 1-NET UX1000-实战-配置-Lync Server 2010-集成
  9. 6.11 将分割数据转换为多值IN列表
  10. Maven jdk.1.7