20 October in ss
Contest
A: sum
快速读。
B: 鬼谷子的钱袋(coin)
贪心。
按照类似二进制的方式准备钱袋:1, 2, 4, 8, ... 以此装入的钱袋数目记为 \(N\)。
如果最后剩余不足以凑齐下一个二进制位钱袋,记剩余金币价值为 \(k\)。
当 \(k\notin \{x|x=2^n, n\in\mathbf{N}^*\}\) 时,价值为 \(k\) 的金币另外装一个钱袋;
当 \(k\in \{x|x=2^n, n\in\mathbf{N}^*\}\) 时,不能同时有两个钱袋装有相同的大于 1 的金币数,此时显然将最大二进制位钱袋金币数 - 1,剩余金币另外装一个钱袋,金币数为 \(k+1\)。
综上所述,总钱袋数为 \(\begin{cases}N, & N=\log_2{(m+1)},N\in\mathbf{N}^*, \\ N+1,& \text{otherwise.} \end{cases}\)
C: master
求最长连续公共字串,\(m\) 次修改机会。
可暴力 AC。
DP 解法:
定义 \(f(i,j,k)\) 为匹配到 A 串的 \(i\) 位置,B 串的 \(j\) 位置时,已经使用了 \(k\) 次修改机会的最长连续公共字串长度。
当 A 串的 \(i\) 位置与 B 串的 \(j\) 位置匹配时,可以匹配,即 \(f(i,j,k)=f(i-1,j-1,k)+1\);
当 A 串的 \(i\) 位置与 B 串的 \(j\) 位置不匹配时,若 \(k>0\),此时可以消耗一次修改机会匹配,即 \(f(i,j,k)= f(i-1,j-1,k-1)+1\);
对于其他情况,无法匹配,即 \(f(i,j,k)=0\)。对于以上取最大值记为 \(f(i,j,k)\)。
统计答案为 \(\max\{f(i,j,k)\}\)。
D: 粉刷匠(paint)
Windy 有 \(N\) 条木板需要被粉刷。 每条木板被分为 \(M\) 个格子。 每个格子要被刷成红色或蓝色。 Windy 每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果 Windy 只能粉刷 \(T\) 次,他最多能正确粉刷多少格子? 一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。
DP。
对于每一条木板,定义 \(f(i,j)\) 为前 \(i\) 个格子粉刷 \(j\) 次的最大正确粉刷数目(即价值)。
易得 \(f(i,j)=\max\left\{f(i-1,j), \max\limits_{k=1,2,\ldots,i}\Big\{f(i-k,j-1)+sum(i,i-k), k-sum(i,i-k)\Big\}\right\}\)。
其中 \(sum(i,j)\) 定义为在第 \(i\) 至第 \(j\) 个格子中颜色为蓝色的数目。用前缀和实现。
对于所有木板,定义 \(g(i,j)\) 为前 \(i\) 条木板粉刷 \(j\) 次的最大正确粉刷数目。
同理可得 \(g(i,j)=\max\left\{g(i-1,j), \max\limits_{k=1,2,\ldots,j}\Big\{g(i-1,j-k)+f(m,k)\Big\}\right\}\)。
答案为 \(\max\limits_{i=1,2,\ldots,T}\left\{g(n,i)\right\}\)。
20 October in ss的更多相关文章
- 27 October in ss
Contest A. chrono 计算某年的干支纪年法年份. Too easy. 然而我忘记 C++ 取模运算是向0取整.然而数据太水,还是有 90 分. B. clock 计算某时刻时针和分针的夹 ...
- linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)
一,alertmanager的用途 1,Alertmanager的作用: Alertmanager是一个独立的报警模块, 它接收Prometheus等客户端发来的警报,并通过分组.删除重复等处理, 通 ...
- [ 转载 ] kernel32.BaseThreadInitThunk
Edited by wap2k, 20 October 2014 - 07:52 PM. This function is called to start a Win32 thread. Its pu ...
- c语言二叉树
Department of Computing and Information SystemsCOMP10002 Foundations of AlgorithmsSemester 2, 2014As ...
- Regionals 2012 :: Asia - Dhaka
水 B Wedding of Sultan 题意:求每个点的度数 分析:可以在,每个字母的的两个端点里求出的的出度,那么除了起点外其他点还有一个入度,再+1 /******************** ...
- C# websocket Server 加密 76号协议
服务器端源码: 76号协议增加了加密字段 sec-websocket-key1 sec-websocket-key2 以及最后8个字节 服务器必须在握手信息之后发送回解密信息才能握手成功. 解密方式 ...
- go语言入门
Go语言最主要的特性: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 1.2.4 错误处理Go语言引入了3个关键字用 ...
- HTML系列(二):头部meta元素
有关name: 一.页面关键字 网站关键字:用户通过搜索引擎能搜到该网站的词汇.最好控制在10个以内. 基本语法: <meta name="keywords" content ...
- 可重入锁(good)
可重入锁,也叫做递归锁,是指在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法[即可重入],而无需重新获得锁: ...
随机推荐
- Python-位操作 ( &,|,~,^,<<,>>
用于提高运算速度,规避算术运算符 在位操作运算中,不应该试图考虑先得到一个数的二进制码 ,而是应该将这个数看作是一个二进制码,二进制补码与整数之间是一一对应的. 诚然Python中有内置函数bin将一 ...
- nmon分析工具的使用
linux监控服务器资源 1.下载nmon_linux_more_14g.tar.gz,下载完成解压之后,我们先命令行看看自己Linux的版本,和nmon支持一下Linux发行版本 2.mkdir / ...
- 2019年Java Web最流行的开发框架总结
ORM型框架:对数据进行持久化操作,例如:基于SQL的MyBatis框架和Hibernate框架. MVC型框架:从逻辑上分为视图层,控制层,模型层,各层各司其职,之间是相互调用的关系,而不是相互依赖 ...
- LeetCode 129. Sum Root to Leaf Numbers 动态演示
树的数值为[0, 9], 每一条从根到叶子的路径都构成一个整数,(根的数字为首位),求所有构成的所有整数的和 深度优先搜索,通过一个参数累加整数 class Solution { public: vo ...
- Mac011--DbWrench Database安装
Mac--DbWrench Database安装 DbWrench <=> powerdesigner 下载网址:http://dbwrench.com/download/install/ ...
- workflow-core 简介
最近想做一个OA相关的网站开发,一直都听说有workflow的东西,之前也断断续续学习过 Workflow Foundation 4.0,还是没有搞明白到底能够用它做什么 但还是觉得workflow在 ...
- Elasticsearch+Logstash+Kibana搭建日志平台
1 ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进行数据读写 ...
- NEO4J -模糊查询
模糊查询 match(emp) where emp.name =~'.*haha.*' return emp 现有节点创建关系 MATCH (cust:Customer),(cc:CreditCard ...
- c# 获取 Apk ,Aar 文件包名
最近项目有个需求,需要拿到前端上传的Apk或者Aar文件里面的包名. 在这里贡献出来,方便有需求的小伙伴. 项目是 asp.net core 2.2 需要安装 nuget : AndroidXml S ...
- Task总结
1.Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: ◆ ThreadPool不支持线程的取消.完成.失败通知等交互性 ...