Codeforces Round 367 Div. 2

点击打开链接

A. Beru-taxi (1s, 256MB)

题目大意:在平面上 \(n\) 个点 \((x_i,y_i)\) 上有出租车,每辆出租车的行驶速度为 \(v_i\),求所有出租车到点 \((a,b)\) 的时间中的最短时间。

数据范围:\(-100 \leq a,b,x_i,y_i \leq 100\),\(v_i \leq 100\),\(n \leq 1000\)

简要题解:依次求出所有的时间,取最小值即可。

时空复杂度:\(O(n) + O(n)\)

关键字:模拟

B. Interesting drink (2s, 256MB)

题目大意:有 \(n\) 个不同的酒吧,第 \(i\) 个酒吧一瓶酒售 \(x_i\) 元。现在已知接下来的 \(q\) 天,每天会有 \(m_i\) 元用来买酒。求分别每天有多少酒吧可供选择买一瓶酒。

数据范围:\(n,x_i,q, \leq 10^5\),\(m_i \leq 10^9\)

简要题解:先将 \(x_i\) 排序,对于每天的钱 \(m_i\),二分出在数组 \(x_i\) 中有多少个数小于等于 \(m_i\) 即可。

时空复杂度:\(O(nlogn) + O(n)\)

关键字:二分查找

C. Hard problem (1s, 256MB)

题目大意:有 \(n\) 个字符串 \(s_i\),将第 \(i\) 个字符串翻转将会花费 \(c_i\) 的代价。求若仅进行翻转操作,不进行交换操作,而使这 \(n\) 个字符串非降序排列所需要花费的最小代价。若无法满足要求,输出 \(-1\)。

数据范围:\(n,\sum |s_i| \leq 10^5\),\(0 \leq c_i \leq 10^9\)

简要题解:令 \(f_{i,0}\) 表示考虑前 \(i\) 个字符串且第 \(i\) 个字符串不翻转的最小代价,\(f_{i,1}\) 则表示第 \(i\) 个字符串翻转的最小代价。那么,易知其可以由状态 \(f_{i-1,0}\) 和状态 \(f_{i-1,1}\) 转移过来。

时空复杂度:\(O(n) + O(n)\)

关键字:动态规划,dp

D. Vasiliy's Multiset (4s, 256MB)

题目大意:有一个初始仅含 \(0\) 的可重集合 \(A\) 和 \(q\) 个操作,操作有如下几类:

  • + x 向集合 \(A\) 中加入元素 \(x\)
  • - x 将集合 \(A\) 中元素 \(x\) 的数量减一,保证操作前至少有一个 \(x\)
  • ? x 询问 \(max_{y \in A} (x \oplus y)\),其中 \(\oplus\) 为异或运算

要求对每次询问给出答案。

数据范围:\(q \leq 2 \times 10^5\),\(1 \leq x \leq 10^9\)

简要题解:将集合 \(A\) 中的每个元素 \(x\) 以二进制的形式从高位向低位插入一棵二进制树(类似于字母树,仅含代表 \(0\) 和 \(1\) 的边)。询问时直接贪心地沿着树边走即可。

时空复杂度:\(O(32q) + O(32q)\)

关键字:字母树,贪心

E. Working routine (2.5s, 256MB)

题目大意:给定一个 \(n \times m\) 的矩阵 \(V_{n \times m}\),对该矩阵进行 \(q\) 次操作。每次操作会将矩阵中两个大小形状相同的子矩阵交换位置(即对应元素互换)。保证每次操作对应的两个子矩阵不重叠且不共边,但允许共角。要求输出经过 \(q\) 次操作后的矩阵。

数据范围:\(n,m \leq 1000\),\(q \leq 10000\),\(v_{i,j} \leq 10^9\)

简要题解:将矩阵 \(V_{n \times m}\) 用二维链表的形式存储起来,即每个元素有四个指针分别指向其上下左右的四个元素。那么,每次操作则仅要将子矩阵边界元素的指针修改即可。

时空复杂度:\(O(q(n+m)) + O(nm)\)

关键字:二维链表,模拟

Codeforces Round #367 (Div. 2) (A,B,C,D,E)的更多相关文章

  1. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)

    Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...

  2. Codeforces Round #367 (Div. 2) C. Hard problem(DP)

    Hard problem 题目链接: http://codeforces.com/contest/706/problem/C Description Vasiliy is fond of solvin ...

  3. Codeforces Round #367 (Div. 2) B. Interesting drink (模拟)

    Interesting drink 题目链接: http://codeforces.com/contest/706/problem/B Description Vasiliy likes to res ...

  4. Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)

    Beru-taxi 题目链接: http://codeforces.com/contest/706/problem/A Description Vasiliy lives at point (a, b ...

  5. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset

    题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 ...

  6. Codeforces Round #367 (Div. 2) C. Hard problem

    题目链接:Codeforces Round #367 (Div. 2) C. Hard problem 题意: 给你一些字符串,字符串可以倒置,如果要倒置,就会消耗vi的能量,问你花最少的能量将这些字 ...

  7. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(01字典树求最大异或值)

    http://codeforces.com/contest/706/problem/D 题意:有多种操作,操作1为在字典中加入x这个数,操作2为从字典中删除x这个数,操作3为从字典中找出一个数使得与给 ...

  8. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset Trie

    题目链接: http://codeforces.com/contest/706/problem/D D. Vasiliy's Multiset time limit per test:4 second ...

  9. Codeforces Round #367 (Div. 2)

    A题 Beru-taxi 随便搞搞.. #include <cstdio> #include <cmath> using namespace std; int a,b,n; s ...

随机推荐

  1. 【2017 Multi-University Training Contest - Team 1 1001】Add More Zero

    [Link]: [Description] 让你求最大的k; 使得 10^k<=2^m-1 [Solution] 求出2^m-1的位数就好; [lg(2^m-1)] = lg(2^m) = m* ...

  2. tsp问题——遗传算法解决

    TSP问题最简单的求解方法是枚举法. 它的解是多维的.多局部极值的.趋于无穷大的复杂解的空间.搜索空间是n个点的全部排列的集合.大小为(n-1)! .能够形象地把解空间看成是一个无穷大的丘陵地带,各山 ...

  3. 轻松使用 Redis slowlog

    之前中秋项目搞活动,用户比较活跃 SE.Redis 频繁报 Timeout 异常,狂翻了一波 issues 发现提这个问题还蛮多的,作者非常频繁的提到使用 slowlog 这个命令进行排查,那么问题就 ...

  4. C#List<string>和string[]之间的相互转换

     一.LIST概述 所属命名空间:System.Collections.Generic      public class List<T> : IList<T>, IColle ...

  5. cap理论理解

    一个分布式系统里面,节点组成的网络本来应该是连通的.然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域.数据就散布在了这些不连通的区域中.这就叫分区. 当你一个数据项只在一个节点 ...

  6. java+spark-sql查询excel

    Spark官网下载Spark Spark下载,版本随意,下载后解压放入bigdata下(目录可以更改) 下载Windows下Hadoop所需文件winutils.exe 同学们自己网上找找吧,这里就不 ...

  7. hdu 1588 Gauss Fibonacci(矩阵嵌矩阵)

    题目大意: 求出斐波那契中的 第 k*i+b 项的和. 思路分析: 定义斐波那契数列的矩阵 f(n)为斐波那契第n项 F(n) = f(n+1) f(n) 那么能够知道矩阵 A = 1 1 1  0 ...

  8. layoutParams-动态更改某个控件的margin

    其实它的方法也非常的简单,如下 LinearLayout.LayoutParams layoutParams = (LayoutParams) bt1.getLayoutParams(); int a ...

  9. launcher- 第三方应用图标替换

    有时候我们感觉第三方应用的icon不美观,或者跟我们主题风格不一致,这时候我们希望换成我们想要的icon,那我们可以这么做(以更换QQ应用icon为例): 1.首先我们当然要根据自己的需要做一张替换i ...

  10. worktools-不同分辨率下图片移植

    1.下载需要移植的平台代码 1)查看手机需要的项目平台信息:adb shell getprop | gerp flavor     ----->mt6732_m561_p2_kangjia_cc ...