Codeforces Round #104 (Div. 1)
A.Lucky Conversion
题意
- 给定两个长度为 \(N(N \le 10^5)\) 且由4和7构成的 \(a, b\)串
- 对 \(a\) 可以有两种操作:
- 交换两个位置的字符;
- 改变一个位置的字符。
- 求最少到操作次数,使得两串相同。
思路
- 统计需要改变4的个数和改变7的个数。
- 两个数到最小值表示两两交换使得对应位相同,剩下的只有其中一种,再进行操作2使得对应位相同。
- 也就是取两者最大值即答案。
B. Lucky Number 2
题意
- 用 \(cnt(x)\) 表示串 \(x\) 在一个串 \(s\) 中出现到次数。
- 现给出 \(cnt(4), cnt(7), cnt(47), cnt(74)\),求满足这些条件的最小的串 \(s\),串 \(s\) 仅包含4和7。
思路
- 47和74只出现在4、7交界处,即如果我们把连续的4和连续的7看成4和7,则最后的串到形式为4、7交替出现,例如……47474……。
- 显然,47和74的个数差值不会超过1。
- 那么只要根据47和74的3种差值构造,多余的4插到前面,7则放到后面。
C. Lucky Subsequence
题意
- 给定 \(N(N \le 10^5)\) 个数 \(a_i(1 \le a_i \le 10^9)\) ,其中仅由4、7构成的数是幸运数。
- 求出长度为 \(K\) 的子序列,满足序列中没有相同的幸运数的方案数,结果对 \(10^9 + 7\) 取模。
- 只要序列选取到位置不同,则认为两种方案不同。
思路
- 在 \(10^9\) 范围内幸运数的个数就1000个左右。
- 用 \(f(i,j)\) 表示前 \(i\) 种幸运数中取 \(j\) 种放入集合中的权值积之和,转移: \[f(i,j) = f(i - 1, j) + c_i f(i - 1, j - 1) \] \(c_i\) 表示第 \(i\)种幸运数出现的次数。
- 假设取了 \(j\) 个幸运数,则从非幸运数集合中取 \(K - j\) 个放入集合即可。
D. Lucky Pair
题意
- 给一个长为 \(N(N \le 10^5)\) 的序列。
- 其中幸运数的个数不超过 \(10^3\) 。
- 求 \([l_1,r_1]\) 和 \([l_2, r_2]\) 的对数,满足 \(l_1 \le r_1 \lt l_2 \le r_2\),且两个区间没有幸运数的交集,就是对于每种幸运数最多只能出现在一个区间中。
思路
- 可以用总方案数 \(-\) 不合法的方案数。
- 总方案数 = \(\binom{N}{4} + 2\binom{N}{3} + \binom{N}{2}\)
- 假设已经得到了左区间 \([l_1, r_1]\) ,那么右半部分 \((r_1, n]\) 会被lucky number分割成若干的区间,使得这些小区间不包含lucky number。
- 先固定左区间的右端点 \(r_1\),然后从大到小枚举左端点 \(l_1\) ,右半部分 \((r_1, n]\) 区间会发生变化,当且仅当 \(l_1\) 是lucky number并且在 \((l_1, r_1]\) 未出现,所以我们只要枚举lucky number的位置即可。
- 考虑右半部分新增的分割点,假设为 \(p\) ,\(pre\)表示 \(p\) 的前一个分割点,\(nxt\)为后一个。那么新增的不合法右区间为包含 \(p\) 的且不包含\(pre,nxt\)的区间。
- 由于有非lucky number的存在,所以还要考虑左右端点不是lucky number的扩展。
E. Lucky Queries
题意
- 给一个长为 \(N(N \le 10^6)\) 且由4、7构成的串 \(s\) 。
- 有 \(M(M \le 3 \times 10^5)\) 次操作:
- switch l r:将区间 \([l, r]\) 的 \(4 \to 7, 7 \to 4\) 。
- count:求串s的最长上升子序列。
思路
- 将4看成0, 7看成1
- 线段树维护区间0的个数 \(c_0\), 1的个数 \(c_1\), 最长上升子序列长度 \(lis\), 下降 \(lds\)。
Codeforces Round #104 (Div. 1)的更多相关文章
- Codeforces Round #456 (Div. 2)
Codeforces Round #456 (Div. 2) A. Tricky Alchemy 题目描述:要制作三种球:黄.绿.蓝,一个黄球需要两个黄色水晶,一个绿球需要一个黄色水晶和一个蓝色水晶, ...
- 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 ...
- Codeforces Round #371 (Div. 1)
A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...
随机推荐
- Spring框架及IOC容器
Spring是一个非常活跃的开源框架, 它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发.Spring以一种非侵入式的方式来管理你的代码, Spring提倡”最少 ...
- Highcharts导出gb2312乱码问题
Highcharts是utf-8编码的,其本地的.net导出环境也是utf-8格式的,导致网页如果采用gb2312编码,显示正常,导出就乱码了.这种现象也同样经常出现在ajax的使用过程中. ajax ...
- [USACO精选] 第一章 数值计算
好不容易坑来了传说中的USACO精选,近100题我要是能做完就哈哈哈哈了…继今天学并查集连番受挫之后,决定写一写基础题. #0 负二进制 2014-01-10 其实是想到就会做,不想到就不会做的题,数 ...
- Cisco IOS debug command reference Command A through D
debug aaa accounting through debug auto-config debug aaa accounting : to display information on acco ...
- 【转】linux /centos 中OpenSSL升级方法详解
相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www. ...
- Linux 上的常用文件传输方式介绍与比较
ftp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间 ...
- 《Java7中 下划线的新特性》
//Java7引入了一个新功能:程序员可以在数值中使用下画线,不管是 //整形数值,还是浮点型数值,都可以自由地使用下划线.通过下划线 //分隔,可以更直观的分辨数值中到底有多少位. public c ...
- jstl表达式替换某些字符
转自:http://www.yiibai.com/jsp/jstl_function_replace.html fn:replace() 函数替换一个字符串与另一个字符串的所有匹配. 语法 fn:re ...
- 2016 - 1 - 22 HTTP(一)
一:通过URL找到服务器 1. URL的概念: 1.1 URL全称Uniform Resource Locatior 统一资源定位符 1.2 通过一个URL就可以找到互联网上的唯一的资源. 1.3 ...
- 12-27 UITableView常用属性及方法
UITableView也有自己的代理协议,它本身继承自UIScrollView 一:代理要遵守代理协议<UITableViewDelegate>,代理协议中的代理方法: 1.改变某一行的行 ...