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
转变坐标系,BITvector

时间复杂度:\(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的更多相关文章

  1. 【推导】【数学期望】【冒泡排序】Petrozavodsk Winter Training Camp 2018 Day 5: Grand Prix of Korea, Sunday, February 4, 2018 Problem C. Earthquake

    题意:两地之间有n条不相交路径,第i条路径由a[i]座桥组成,每座桥有一个损坏概率,让你确定一个对所有桥的检测顺序,使得检测所需的总期望次数最小. 首先,显然检测的时候,是一条路径一条路径地检测,跳跃 ...

  2. 【线段树】【扫描线】Petrozavodsk Winter Training Camp 2018 Day 5: Grand Prix of Korea, Sunday, February 4, 2018 Problem A. Donut

    题意:平面上n个点,每个点带有一个或正或负的权值,让你在平面上放一个内边长为2l,外边长为2r的正方形框,问你最大能圈出来的权值和是多少? 容易推出,能框到每个点的 框中心 的范围也是一个以该点为中心 ...

  3. 【取对数】【哈希】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(< ...

  4. 【BFS】【最小生成树】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem G. We Need More Managers!

    题意:给你n个点,点带权,任意两点之间的边权是它们的点权的异或值中“1”的个数,问你该图的最小生成树. 看似是个完全图,实际上有很多边是废的.类似……卡诺图的思想?从读入的点出发BFS,每次只到改变它 ...

  5. 【状压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表示确定 ...

  6. 【推导】【单调性】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, 那么第一轮取出开头的 ...

  7. 【线性基】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的 ...

  8. Petrozavodsk Winter Training Camp 2018 Jagiellonian U Contest Problem A. XOR

    先把所有的数异或起来 得到sum 然后sum有一些位是1一些位是0 是0的位表示所有数里面有这位的数是偶数个 则无论怎么划分数 这一位对最终的答案都是不会有贡献的  因为偶数=偶数+偶数/奇数+奇数 ...

  9. 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 据 ...

随机推荐

  1. 【bzoj5157】[Tjoi2014]上升子序列 树状数组

    题目描述 求一个数列本质不同的至少含有两个元素的上升子序列数目模10^9+7的结果. 题解 树状数组 傻逼题,离散化后直接使用树状数组统计即可.由于要求本质不同,因此一个数要减去它前一次出现时的贡献( ...

  2. 多线程---handlerthread

    当我们需要工作线程来操作的时候,很多时候会有同步问题,UI更新问题. Handle机制就是为了解决这个问题而产生的. android允许每个线程都有自己的消息队列,同时也可以是主线程消息队列. 但是很 ...

  3. 使用Xpath定位元素

    1.xpath较复杂的定位方法: 现在要引用id为“J_password”的input元素,可以像下面这样写: WebElement password = driver.findElement(By. ...

  4. 【服务器_Tomcat】Tomcat的Server Options选项

    一.配置 默认前两个是没有勾选的,应该勾选上: 在Cotext节点中有一个reloadable='true'属性,将它改为false,可以在修改java文件后不用重启服务器即可生效,但是不包括新建ja ...

  5. CF825F String Compression 解题报告

    CF825F String Compression 题意 给定一个串s,其中重复出现的子串可以压缩成 "数字+重复的子串" 的形式,数字算长度. 只重复一次的串也要压. 求压缩后的 ...

  6. smb(ms17-010)远程命令执行之msf

    本次用到的环境: kali(2016.2)32位系统.ip地址:192.168.1.104 目标靶机为:win7sp1x64系统(关闭防火墙),ip地址:192.168.1.105 具体的步骤如下: ...

  7. 框架----Web框架本质

    一.Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:ut ...

  8. PID控制算法的C语言实现三 位置型PID的C语言实现

    上一节中已经抽象出了位置性PID和增量型PID的数学表达式,这一节,重点讲解C语言代码的实现过程,算法的C语言实现过程具有一般性,通过PID算法的C语言实现,可以以此类推,设计其它算法的C语言实现. ...

  9. js 多个事件的绑定及移除(包括原生写法和 jquery 写法)

    需要打开控制台查看效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  10. mybatis基础犯错总结

    1.关于mybatis的文件一般都是其mapper文件出错: 首先关于输入参数parameterType出错: (1)基本数据类型:如果输入参数只有一个,其数据类型可以是基本数据类型,也可以是自己定的 ...