来源

第五届新疆省ACM-ICPC程序设计竞赛nowcoder重现赛

H-虚无的后缀

思路1

好菜哦。

首先后缀零的个数最多,我们只需要考虑他的质因子2和5的个数就行了(存为a,b)。

因为其他因子对10没有贡献。

问题转化为:n个数对\((a,b)\),选出k个数对使得\(min(tot_a,tot_b)\)最大

由于规模很小,\(tot_b最大6000\)我们可以\(f[i][j]选i个tot_b有j\)个进行背包

dp复杂度有点高\(O(n^3log_{5}10^{18})\)

思路2

还有一种就是贪心。

正着不行倒着贪。

每次取影响当前答案最小的删去,删n-k个

dp复杂度\(O(n^2)\)

sol1代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 233; ll read() {ll x; cin >> x; return x;}
int n, K, w[N], v[N], f[201][6007]; int main() {
n = read(), K = read();
for (int i = 1; i <= n; ++i) {
ll x = read(), val;
val = x;
while(val % 5 == 0 && val) val /= 5, w[i]++;
val = x;
while(val % 2 == 0 && val) val /= 2, v[i]++;
}
memset(f, -0x3f, sizeof(f));
f[0][0] = 0;
for (int i = 1; i <= n; ++i) {
for (int j = K; j >= 1; --j) {
for (int k = 6000; k >= w[i]; --k) {
f[j][k] = max(f[j][k], f[j - 1][k - w[i]] + v[i]);
}
}
} int ans = 0;
for (int i = 1; i <= 6000; ++i) {
ans = max(ans, min(i, f[K][i]));
} printf("%d\n", ans);
return 0;
}

sol2代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 233; ll read() {ll x; cin >> x; return x;}
int n, K, w[N], v[N], vis[N], sum_2, sum_5; int main() {
n = read(), K = read();
for (int i = 1; i <= n; ++i) {
ll x = read(), val;
val = x;
while(val % 2 == 0 && val) val /= 2, v[i]++;
val = x;
while(val % 5 == 0 && val) val /= 5, w[i]++;
sum_2 += v[i], sum_5 += w[i];
} for (int i = 1; i <= n - K; ++i) {
int mi = 0, id = 0;
for (int j = 1; j <= n; ++j) {
if (!vis[j] && mi < min(sum_2 - v[j], sum_5 - w[j]))
mi = min(sum_2 - v[j], sum_5 - w[j]), id = j;
}
vis[id] = 1, sum_2 -= v[id], sum_5 -= w[id];
} printf("%d\n", min(sum_2, sum_5));
return 0;
}

第五届新疆ACM H-虚无的后缀的更多相关文章

  1. 记第五届山东省ACM程序设计比赛——遗憾并非遗憾

    记第五届山东省ACM程序设计比赛 5月10日上午9点半左右,我们的队伍从学校出发,一个多小时后到达本次比赛的地点-哈尔滨工业大学. 报道,领材料,吃午饭,在哈工大的校园里逛了逛,去主楼的自习室歇息了一 ...

  2. 第五届山东ACM大赛汇总

    A.angry_birds_again_and_again 简单积分: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem& ...

  3. 由于空间,注定的结果——第五届山东省ACM编程比赛总结

    应该是,这是一个很失败的结果.目前省赛玩具.作为志愿者说,,铁匠是一个很丢人的事. 作为队长.全然没有想到会是这种一次旅程.尽管由于去baidu的实习和各种offer的申请,对acm抱着能水就水绝不深 ...

  4. 字符串 --- KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组

    涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用.当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟 ...

  5. 2018CCPC-女生专场

    (咕咕咕,咕了快一年的bu题.. A.CCPC直播 传送:http://acm.hdu.edu.cn/showproblem.php?pid=6297 题意:rt. 分析:模拟. #include&l ...

  6. 分词工具ICTCLAS5.0使用心得

    接触自然语言处理有一年多了,最基本的一些自然是分词,词性标注,命名实体识别之类的知识,有些应用知道原理是一回事,自己动手做起来又是另外一回事了.最近又开始重操旧业:分词.分词最著名的自然就是中科院的分 ...

  7. Objective C 快速入门学习一

    Objective-C程序设计 1. 直接用Xcode作为IDE,舍弃gcc编译方面的学习.2. 入门例子:Eg:打印Hello World 控制台程序 #import<Foundation/F ...

  8. cuda 初学大全

    转自:http://blog.csdn.net/augusdi/article/details/12529331 cuda 初学大全 1 硬件架构CUDA编程中,习惯称CPU为Host,GPU为Dev ...

  9. makefile基础(GNU)

    makefile的核心 targets : prerequisites ; commands...   //不分行的情况 targets : prerequisites                 ...

随机推荐

  1. TCP和UDP的差异

    TCP建立连接 如果有人问TCP如何建立连接?大部分的回答都是三次握手成功,就建立连接了. 那么握手的目的是什么呢? 1)告知对方自己的序号 2)初始化资源 例如以下握手案例,握手两次由客户端主动发起 ...

  2. Java静态变量初始化的坑

    class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; pu ...

  3. C#生成/调用动态链接库

    参考地址:https://www.cnblogs.com/qq4004229/archive/2013/01/30/2882409.html 一.需求描述 (1)用代码生成动态链接库 (2)用C#代码 ...

  4. 18 java I/O 系统

    流的类继承结构 我们首先看看流的类继承结构,有助于理解下个标签的内容 InputStream OutputStream Reader Writer File类 File类技能表示一个特定文件的名称,又 ...

  5. 对 GAN 的 value function 的理解

    上式分为两个步骤: 第一步:调整discriminative model D的权重,使得V中两项取得最大值 第二步:调整generative model G的权重,使得V中第二项取得最小值 首先,分析 ...

  6. Elasticsearch DSL 常用语法介绍

    课程环境 CentOS 7.3 x64 JDK 版本:1.8(最低要求),主推:JDK 1.8.0_121 Elasticsearch 版本:5.2.0 相关软件包百度云下载地址(密码:0yzd):h ...

  7. MySQL--用户管理 pymysql 索引

    目录 用户管理 创建mysql账户 权限管理 涉及到的表 pymysql 索引 语法 结论 用户管理 主要是为了控制权限,让不同的人只能操作只属于只记得那部分数据 创建mysql账户 账户中涉及三个数 ...

  8. element-ui文件上传 做类型大小的限制

    上代码: <div class="filebox"> <el-upload class="upload-demo" :action=" ...

  9. 《高性能javascript》随笔

    1.css文件在head标签中引入,保证在渲染结构的时候进行样式渲染2.Js文件放在body的底部,确保在渲染dom树的时候不会出现js阻塞3.函数内的变量是访问速度最快的,全局变量的访问速度是最慢的 ...

  10. ObjC: 源文件的组织

    转自:http://marshal.easymorse.com/tech/objc-%e6%ba%90%e6%96%87%e4%bb%b6%e7%9a%84%e7%bb%84%e7%bb%87 最简单 ...