来源

第五届新疆省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. golang ---Learn Concurrency

    https://github.com/golang/go/wiki/LearnConcurrency 实例1: package main import ( "fmt" " ...

  2. Kafka学习笔记之Kafka自身操作日志的清理方法(非Topic数据)

    0x00 概述 本文主要讲Kafka自身操作日志的清理方法(非Topic数据),Topic数据自己有对应的删除策略,请看这里. Kafka长时间运行过程中,在kafka/logs目录下产生了大量的ka ...

  3. 使用ASP.NET Core MVC应用程序中的ResponseCache属性处理缓存(转载)

    HTTP响应的缓存意味着当发出HTTP请求时,服务器生成的响应由浏览器或服务器存储在某个地方,以便在对同一资源的连续HTTP请求中重复使用.实质上,我们正在存储生成的响应,并将该响应重用于后续请求一段 ...

  4. .Net Core 获取应用物理路径的常见问题

    如果要得到传统的ASP.Net应用程序中的相对路径或虚拟路径对应的服务器物理路径,只需要使用使用Server.MapPath()方法来取得Asp.Net根目录的物理路径. 但是在Asp.Net Cor ...

  5. session中删除数组中的某一个值 - 购物车例子 - jsp

    这篇随笔简单的讲一下在session中移除数组中的某一项内容,比如这里有一个购物车其中有两件商品,需要移除其中洗发水这一件商品. 其实在这个session对象中存储了一个数组,在订购页面时选择商品加入 ...

  6. Matlab访问者模式

    访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式.它 ...

  7. .net core web api 默认的模型验证

    转载自 https://www.codercto.com/a/45938.html

  8. PL/SQL 出现死锁解决办法

    转自:https://blog.csdn.net/u013015629/article/details/48005763 在PL/SQL中操作数据表时,长时间没反应,并且编辑某个表中数据时,出现“re ...

  9. Redis特点分析及性能优化

    一.Key >Redis key值是二进制安全的,这意味着可以可以使用任何二进制序列作为key值.空字符串也是有效的key值. >key取值原则 1.键值不需要太长,消耗内存,且在数据中查 ...

  10. 搜索和浏览离线 Wikipedia 维基百科(中/英)数据工具

    为什么使用离线维基百科?一是因为最近英文维基百科被封,无法访问:二是不受网络限制,使用方便,缺点是不能及时更新,可能会有不影响阅读的乱码. 目前,主要有两种工具用来搜索和浏览离线维基百科数据:Kiwi ...