Codeforces Round #674 (Div. 3)
A
除一下就完了。
时间复杂度 \(O\left(t\right)\)。
B
分在对称线上的矩阵和不在对称线上的矩阵讨论。
时间复杂度 \(O\left(tn^2\right)\)。
C
肯定是先增加值再复制。根据小学就学过的结论,元素的值都等于元素个数时最优,或者在此基础上让值或个数增加 \(1\)。
时间复杂度 \(O\left(t\right)\)。
D
因为可以插入任意整数,而值域是有限的,所以插入一个数相当于将序列分成互不影响的两部分。
考虑从前往后插,插入相同次,显然最后插入位置越靠后越优。用个 map 记录一下即可。
时间复杂度 \(O\left(n\log n\right)\)。
E
第二问显然能赢就赢。
第一问的结论证明先鸽着。
时间复杂度 \(O\left(1\right)\)。
F
倒着扫,我们用 \(c_i,bc_i,abc_i,now_i\) 分别表示 \(i+1\sim n\) 位存在子序列 \(\texttt{c,bc,abc}\) 的个数和到第 \(i\) 位 \(\texttt?\) 的数量。
当 \(s_i\not=\texttt?\) 时:
\(\begin{cases}s_i=\texttt c\qquad c_i=c_{i-1}+3^{now_i}\\s_i=\texttt b\qquad bc_i=bc_{i-1}+c_{i-1}\\s_i=\texttt a\qquad abc_i=abc_{i-1}+bc_{i-1}\end{cases}\)
对于一个新的 \(\texttt c\),后面的每一个 \(\texttt?\) 都可以随便填。
对于一个新的 \(\texttt b\),后面必须存在 \(\texttt c\) 才能构成子序列 \(\texttt{bc}\)。
对于一个新的 \(\texttt a\),后面必须存在 \(\texttt{bc}\) 这个子序列才能构成子序列 \(\texttt{abc}\)。
当 \(s_i=\texttt?\) 时:
\(\begin{cases}c_i=c_{i-1}\times 3+3^{now_{i-1}}\\bc_i=bc_{i-1}\times 3+c_{i-1}\\abc_i=abc_{i-1}\times 3+bc_{i-1}\end{cases}\)
当前这一位随便填计算先前的 \(\texttt c\) 和当前这一位填 \(\texttt c\) 构成新的 \(\texttt c\) 这两种情况。
当前这一位随便填计算先前的 \(\texttt{bc}\) 和当前这一位填 \(\texttt b\) 构成新的 \(\texttt{bc}\) 这两种情况。
当前这一位随便填计算先前的 \(\texttt{abc}\) 和当前这一位填 \(\texttt a\) 构成新的 \(\texttt{abc}\) 这两种情况。
然后这道题就被你秒掉了,时间复杂度 \(O\left(n\right)\)。
Codeforces Round #674 (Div. 3)的更多相关文章
- Codeforces Round #674 (Div. 3) C、D 题解
C.Increase and Copy #枚举 题目链接 题意 最初你有仅包含一个数字\(1\)的数组\(a\),一次操作中可对该数组进行两类操作: 从数组中选择一个元素,将该元素\(+1\): 从数 ...
- Codeforces Round #674 (Div. 3) F. Number of Subsequences 题解(dp)
题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
随机推荐
- python时间Time模块
时间和日期模块 关注公众号"轻松学编程"了解更多. python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能. python提供了一个time和calendar模块 ...
- 从小白到 6 个 offer,我究竟是怎么刷题的?
最近自习室里又兴起了一阵刷题潮,大家相约刷题~ 今天和大家系统分享下我去年转行时的一个刷题过程和方法,希望对你有所帮助. 首先介绍下我的编程基础,我学的是金融工程专业,硕士时学过 C++ 的课,这也是 ...
- 【Java GC系列】垃圾收集简介(1)
说明: 在本文中, Garbage Collection 翻译为 "垃圾收集", garbage collector 翻译为 "垃圾收集器"; 一般认为, 垃圾 ...
- linux 安装部署
[smb] service smb restart vim /etc/selinux/config systemctl stop firewalld.service(centos7 64) seten ...
- Linux和MySQL的安装与基本操作
- Python爬虫简单实现CSDN博客文章标题列表
Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...
- thinkPHPbiji
ThinkPHP3.2验证码操作 在当前的控制器内 我这里是登录后台控制器 class LoginController extends Controller { public function ind ...
- JavaScript 读取CSS3 transform
某些场景需要读取 css3 transform的属性 例如 transform:translate(10px,10px) rotate(-45deg); 这该怎么读取呢,正则表达式?毫无疑问这很坑爹 ...
- 【webSokect】基于django Channels的简单实现
# settings.py: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.con ...
- python之路《五》字符串的操作
python的里的字符串的操作是可以说是最常见也是最实用的 我们通常使用双引号来表示字符串" "创建字符串很简单,定义一个变量就可以了 1 name = 'my name \t i ...