Petrozavodsk Winter Training Camp 2018
Petrozavodsk Winter Training Camp 2018
Problem A. Mines
题目描述:有\(n\)个炸弹放在\(x\)轴上,第\(i\)个位置为\(p_i\),爆炸半径为\(r_i\),引爆第\(i\)个炸弹的花费为\(c_i\)。但一个炸弹\(i\)爆炸时,在爆炸半径内的其它炸弹都会爆炸,而且不用花费。有\(Q\)个操作,每次改变一个炸弹的花费,然后输出引爆所有炸弹的最小费用。
solution
不会。
Problem B. Balls
题目描述:有\(n\)个直径为\(1\)的球在\(x\)轴上,编号从\(1\)到\(n\),第\(i\)个球的最左边的位置为\(p_i\)。在\(x=P\)处有一堵墙。有\(Q\)个操作,有两类操作:1、放一个球,最左边的位置为\(x\),如果已经有球,则不放。 2、滚动最左边的球,当一个球碰到另一个球时,那个球立刻停止,另一个球开始向右滚,直到碰到墙停下。输出最后每个球的位置。
solution
用一个\(set\)记住每个球的位置,当有滚动操作时,相当于将最左边的球拿出来,然后将其它球的位置减一,最后在墙的左边放一个球,用一个变量\(delta\)记住\(set\)的位置减了多少次\(1\)即可。
时间复杂度:\(O(nlogn)\)
Problem C. Flip a Coin
题目描述:有两个人在玩抛硬币游戏,每个人先选择一个只有'H', 'T'的字符串,然后不断地抛硬币,正面为'H', 反面为'T', 当硬币序列出现这两个人选择的序列时结束,谁的序列出现谁就赢。若同时出现,则平手。问每个人赢的概率以及平手的概率。
solution
考虑第一个人赢的概率。
将两个序列的前缀看成一个个点,设空串为一个点,每个点其实就代表着一种匹配的情况,每个点都会连出两条边,表示从这个点分别有\(\frac{1}{2}\)的概率经过某条边到达下一个匹配情况,然后可以列出若干条概率方程,每个未知量表示到达这个状态后能赢的概率,显然第一个序列的概率为\(1\),第二个序列的概率为\(0\),注意现考虑第二个序列,因为同时出现是算平手的。然后解方程解出答案。
第二个人赢的概率也是类似的解法。
平手的答案为\(1\)减上面两个答案的和。
时间复杂度:\(O(n^3)\)
Problem D. Octagons
题目描述:如下图给边编号,给出一个字符串,问起点和终点是否重合。

solution
以'a', 'b'的环为例,若序列中存在'ababa',则相当于'aba',即在一个环内到同一个点的两种走法,后者构成的序列较短。当序列中存在相邻两个相同的字符,则这两个字符可以消掉,因为相当于走了相同的边(回头路)。按这两个规则消除字符,最后剩下空串的说明起点与终点重合,否则不是。
时间复杂度:\(O(n)\)
Problem E. Tree Paths
Problem F. Very New York
题目描述:在二维平面上有\(n\)个点,现在有\(Q\)个询问,每次询问给出一个点\(P\)以及一个距离\(d\),问与点\(P\)的哈密顿距离不超过\(d\)的有多少个点。
solution
转变坐标系,BIT套vector。
时间复杂度:\(O(Qlog^2n)\)
Problem G. Sheep
Problem H. Bin Packing
题目描述:有\(n\)个物品,每个物品的重量为\(w_i\),将这个物品分成若干份,使得每一份的总重量不超过\(S\),问最少分成多少份。
solution
状态压缩。记\(f[sett]\)表示已分配的为\(sett\),分成的最少份数,\(g[sett]\)表示最后一份的重量。然后枚举下一个要分配的物品为\(i\),能分到最后一份的塞到最后一份去,否则新开一份。
时间复杂度:\(O(2^nn)\)
Problem I. Statistics
Problem J. Zigzag
题目描述:给出两个序列\(a, b\),求出这两个序列的最长公共震荡序列(\(a_{i+1}>a_i and a_{i+1}>a_{i+2} or a_{i+1}<a_i and a_{i+1}>a_{i+2})\)。
solution
设\(f[i][j]\)表示\(a_i==b_j\)且最后是向下走的最大值,\(g[i][j]\)为\(a_i==b_j\)且最后是向上走的最大值。用两个二维BIT维护最后一个数为\(x\),对应\(b\)序列的第\(y\)位的\(f, g\)最大值。然后\(i\)从小到大枚举,\(j\)从大到小枚举,不断更新,维护。
时间复杂度:\(O(nmlog(n)log(m))\)
Problem K. Knapsack
Petrozavodsk Winter Training Camp 2018的更多相关文章
- 【推导】【数学期望】【冒泡排序】Petrozavodsk Winter Training Camp 2018 Day 5: Grand Prix of Korea, Sunday, February 4, 2018 Problem C. Earthquake
题意:两地之间有n条不相交路径,第i条路径由a[i]座桥组成,每座桥有一个损坏概率,让你确定一个对所有桥的检测顺序,使得检测所需的总期望次数最小. 首先,显然检测的时候,是一条路径一条路径地检测,跳跃 ...
- 【线段树】【扫描线】Petrozavodsk Winter Training Camp 2018 Day 5: Grand Prix of Korea, Sunday, February 4, 2018 Problem A. Donut
题意:平面上n个点,每个点带有一个或正或负的权值,让你在平面上放一个内边长为2l,外边长为2r的正方形框,问你最大能圈出来的权值和是多少? 容易推出,能框到每个点的 框中心 的范围也是一个以该点为中心 ...
- 【取对数】【哈希】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem J. Bobby Tables
题意:给你一个大整数X的素因子分解形式,每个因子不超过m.问你能否找到两个数n,k,k<=n<=m,使得C(n,k)=X. 不妨取对数,把乘法转换成加法.枚举n,然后去找最大的k(< ...
- 【BFS】【最小生成树】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem G. We Need More Managers!
题意:给你n个点,点带权,任意两点之间的边权是它们的点权的异或值中“1”的个数,问你该图的最小生成树. 看似是个完全图,实际上有很多边是废的.类似……卡诺图的思想?从读入的点出发BFS,每次只到改变它 ...
- 【状压dp】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem E. Guessing Game
题意:给你n个两两不同的零一串,Alice在其中选定一个,Bob去猜,每次询问某一位是0 or 1.问你最坏情况下最少要猜几次. f(22...2)表示当前状态的最小步数,2表示这位没确定,1表示确定 ...
- 【推导】【单调性】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem B. Tribute
题意:有n个数,除了空集外,它们会形成2^n-1个子集,给你这些子集的和的结果,让你还原原来的n个数. 假设原数是3 5 16, 那么它们形成3 5 8 16 19 21 24, 那么第一轮取出开头的 ...
- 【线性基】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem A. XOR
题意:给你一些数,问你是否能够将它们划分成两个集合,使得这两个集合的异或和之差的绝对值最小. 设所有数的异或和为S,集合A的异或和为A. 首先,S的0的位对答案不造成影响. S的最高位1,所对应的A的 ...
- Petrozavodsk Winter Training Camp 2018 Jagiellonian U Contest Problem A. XOR
先把所有的数异或起来 得到sum 然后sum有一些位是1一些位是0 是0的位表示所有数里面有这位的数是偶数个 则无论怎么划分数 这一位对最终的答案都是不会有贡献的 因为偶数=偶数+偶数/奇数+奇数 ...
- 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】
2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据 ...
随机推荐
- 使图片相对于上层DIV始终水平、垂直都居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js new date()说明
javaScript UTC() 方法: UTC() 方法可根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数. 要创建一个一个日期对象,可以使用以下的方式: var now=new D ...
- 【数学】【CF27E】 Number With The Given Amount Of Divisors
传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...
- Python3 字典 fromkeys()方法
Python3 字典 描述 Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值. 语法 fromkeys()方法语法: ...
- oracle中的substr()函数
SUBSTR(cExpression,nStartPosition [,nCharactersReturned])其中,cExpression指定要从其中返回字符串的字符表达式或备注字段:nStart ...
- poj2549 Sumsets
Sumsets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11886 Accepted: 3273 Descript ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
- Linux下调整根目录的空间大小
原文 一.目的 在使用CentOS6.3版本Linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整.首先,先来查看一下系统的空间分 ...
- react-native安装react-navigation后出现package-lock.json文件的坑
npm5.0开始安装后回生成一个新的package-lock.json文件.以致初始化好的react-native项目引入的依赖被删除. 目前解决办法.使用facebook的yarn add 第三方组 ...
- git安装和简单配置
http://pan.baidu.com/share/link?shareid=4291215660&uk=219947478 直接贴网盘的地址了