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 据 ...
随机推荐
- 最小生成树-Borůvka算法
一般求最小生成树的时候,最流行的是Kruskal算法,一种基于拟阵证明的贪心,通过给边排序再扫描一次边集,利用并查集优化得到,复杂度为\(O(ElogE)\).另一种用得比较少的是Prim算法,利用优 ...
- BZOJ 1925 地精部落(DP)
一道很经典的DP题. 题意:求n排列中波动排列的种数. 不妨考虑DP,令dp1[i][j],表示1-j的排列中,第一项为i之后递增的波动排列种数.dp2[i][j]表示1-j的排列中,第一项为i之后递 ...
- 【bzoj2669】[cqoi2012]局部极小值 容斥原理+状压dp
题目描述 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值. 给出所有局部极小值的位置,你的任 ...
- 【bzoj4244】邮戳拉力赛 背包dp
题目描述 IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶,下行电车沿编 ...
- BZOJ1996 HNOI2010合唱队(区间dp)
设f[i][j][0/1]表示i~j这段区间上一次选择的是最左/最右人的方案数.转移显然. #include<iostream> #include<cstdio> #inclu ...
- C++解析(5):内联函数分析
0.目录 1.常量与宏回顾 2.内联函数 3.内联函数深度探析 4.注意事项 5.小结 1.常量与宏回顾 C++中的const常量可以替代宏常数定义,如: const int A = 3; <- ...
- BZOJ3782 上学路线 【dp + Lucas + CRT】
题目链接 BZOJ3782 题解 我们把终点也加入障碍点中,将点排序,令\(f[i]\)表示从\((0,0)\)出发,不经过其它障碍,直接到达\((x_i,y_i)\)的方案数 首先我们有个大致的方案 ...
- SCOI2014极水的题解- -
话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- - DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], ...
- SQL Server参数化SQL语句中的like和in查询的语法(C#)
sql语句进行 like和in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like参数化查询:string sqlstmt = "select * from users whe ...
- 【bzoj2006】超级钢琴
Portal --> bzoj2006 Solution 一开始看错题了..没有看到编号连续然后愣了好久== 首先肯定是找最大的\(K\)个啦,然后具体怎么找的话..没有什么特别好的办法那就 ...