来源

第五届新疆省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. K8S学习笔记之Grafana App for Kubernetes的配置

    Grafana有一套针对Kubernetes监控的APP,和Grafana-Zabbix App类似,但是配置咋一看比较麻烦,主要参数都是来自K8S. 这款APP的详细介绍请参考Grafana App ...

  2. 解决Code First MySql数据库 Specified key was too long; max key length is 767 bytes异常

    需要给DbContext加上如下特性: [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] public cla ...

  3. python基础流程控制

    流程控制主要分为三大类: 1.if 判断语句 2.while 循坏语句 3.for 循坏语句 下面以举例说明: if 判断语句: user1 = 'seven' user2 = 'alex' pass ...

  4. Python3字典与集合

    一.Python3字典 字典是另一种可变容器模型,且可存储任意类型对象字典的每个键值(key=>value)对用冒号":"分割,每个键值对之间用逗号"," ...

  5. 【Java深入研究】11、深入研究hashmap中的hash算法

    一.简介 大家都知道,HashMap中定位到桶的位置 是根据Key的hash值与数组的长度取模来计算的. JDK8中的hash 算法: static final int hash(Object key ...

  6. Android-----创建SQLite数据库

    简单介绍一下Android系统内置轻便又功能强大的嵌入式数据库--SQLite. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关 ...

  7. prometheus学习系列六: Prometheus relabel配置

    relabel_config 重新标记是一个功能强大的工具,可以在目标的标签集被抓取之前重写它,每个采集配置可以配置多个重写标签设置,并按照配置的顺序来应用于每个目标的标签集. 目标重新标签之后,以_ ...

  8. 【Spring Boot】Spring Boot之使用Alibaba Cloud Toolkit(Idea插件)本地一键部署Spring Boot项目到远程服务器

    一.Alibaba Cloud Toolkit(Idea插件)的安装 1)Alibaba Cloud Toolkit 介绍 Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发.测 ...

  9. JMETER 使用BeanShell 配合 if 控制器实现逻辑控制

    业务场景 在登录后,我们根据登录的响应,判断是否执行下一步的操作. 实现步骤 1.在登录采样器树中增加BeanShell 监听器. 作用是在线程上下文变量中增加一个变量,表示登录是否成功. beans ...

  10. zabbix--CPU监控并告警

    zabbix监控CPU超值则报警 由于默认没有 cpu 的使用率监控,需要添加一个监控项,通过 system.cpu.util[,,] 来进行配置 添加监控项  添加图形 添加触发器 展示图