列表

详情


NC26157. H. 虚无的后缀

描述

给出 n 个数字,第 i 个数字为 a[i],我们从中选出 k 个数字,使得乘积后缀 0 的个数最多。

输入描述

第一行,两个正整数 ,第 2 行 n 个正整数表示 

输出描述

输出一个整数,表示最多有多少个后缀 0

示例1

输入:

2 2
20 5

输出:

2

示例2

输入:

3 2
2 5 20

输出:

2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 504K, 提交时间: 2020-02-26 10:56:25

#include<iostream>
using namespace std;
int main()
{
	long long int n,k,a[205]={0},b[205],c[205],t,i,j,t1,x;
	cin>>n>>k;
	for(i=0;i<n;i++)
	cin>>c[i];
	for(i=0;i<205;i++)
	b[i]=1;
	for(i=0;i<n;i++)
	if(c[i]!=0)
	for(j=k;j>=1;j--)
	{
		x=0,t=c[i];
		while(t%10==0) x++,t/=10;t=(t%100000000)*b[j];
		while(t%10==0) x++,t/=10;t1=t%100000000;
		if(a[j]<(a[j-1]+x))
		b[j]=t1,a[j]=a[j-1]+x;
		else if(a[j]==a[j-1]+x) b[j]=t1;
	}
	cout<<a[k]<<endl;
	return 0;
}

上一题