ZJOI2018游记Round1
广告
All Falls Down
非常感谢学弟学妹们捧场游记虽然这是一篇假游记
ZJOI Round1今天正式落下帷幕。在这过去的三天里遇到了很多朋友,见识了很多有趣的人和事。或许这只是我整个OI生涯中的卷首一场,但是允许我谨此游记献给所有的一切、所有的你们。
ZJOIday1游记
8:30:然而报告厅里选手们陆陆续续地并没有到齐……
第一场主讲人是绍一的任轩笛,讲课pdf的标题一如既往地是「杂题选讲」听主讲人说都是一些套路题
Binary Cards
不上升序列
Sum of Powers
Perpetual Subtraction
题意
一开始有一个数x,每次把x变成[0, x]内随机一个整数。
给出一开始数字为0 ∼ n的概率以及轮数m,求m轮后剩下数字
是i的概率。
对998244353取模。
范围
n ≤ 10^5
, m ≤ 10^18。
看上去似乎可做的概率题(但是我不会小数取模)
小L的计算题
(又是数学题)
星空
Chef attic window
(数学题)
Query on a tree VII
题意
给出一棵n个点的无根树,每个点有点权。
点的颜色有黑白两种,初始所有点都为黑色。
需要支持:单点反色,单点修改点权,询问一个点所在的同色连
通块中的最大点权。
范围
n, m ≤ 10^5。
据说是一道数据结构题
Jabby's shadows
题意
一棵树,树有边权,每个点有黑白两种颜色,要求支持:
1 u:询问点u所在同色连通块中,最远两点的距离,即直径。
2 u, v, c:将u ∼ v链上颜色都修改为c。
范围
n, q ≤ 100000。
上一题的加强版。
但是听课之后仍然不懂如何修改一条链的颜色……
Making Change
题意
有n种硬币,第i种面值是Di,每种都有无限个。求拼出C的方案
数。两种方案不同仅当某种硬币使用的数量不一样。
范围
n ≤ 50, Di ≤ 500, C ≤ 10^100
第一眼看上去好眼熟,以为终于来了一道可做题……好吧数据范围有些可怕
正解依然是数学方法。我能说基本听不懂吗……
不过发现了一个很有趣的东西:洛必达法则。找了一个例子推了推——好生神奇!以前也有遇到过求∞/∞这样式子的极限,不过都是瞎推来推去然而并没有推出来。
13:03:三楼机房的初中生都去打游戏了;迟到三分钟进场
下午第一场讲课人是陈嘉乐。好像又是杂题选讲的样子
Test 1
Test 2
一个网格图n,m<1e5被染为黑白两色。对于所有的黑点(x,y),(y,z),将(x,z)染为黑色。询问最后一共有几个黑点。
是的看上去非常可做。然而我只会用vector暴力枚举。
标算讲了弱连通块及染色如此的图论方法。但是,???
Test 3
一颗有根树有黑白两色;初始位置在root上,每次随机等概率走向一个儿子,当位于叶子节点时停止。对于每次走到的节点,如果当前是白点则仅在第一次走上该点时cnt++否则每次cnt++。询问最终cnt的期望值。
据说是一道概率的入门题。看上去dp可以?不过标算我没有仔细听,似乎要解方程?
Test 4
给定一个字符串S,字符集大小小于等于8。当且仅当Si=Sj或|i-j|=1时存在i->j的有向边。询问最后图的直径 和 距离为直径的所有点对。
Test 5
给定一个n≤15个点,m≤n(n-1)/2条边的无重边的有向图G,保证任意一条边(xi,yi)中xi<yi。考虑G中的所有子集K,并在G中删去这些边,形成新的图G'。
小H,小R在G'上玩游戏,小H先手,两人轮流操作一次。起初在点1,点2有两颗石子。每次操作可以将一个石子移动到一个与它相连的点上,最后无法移动者失败。
我的想法:枚2^m的图,每次计算1,2的SG值。 显然是会TLE的
标算:状压DP:dp出有哪些图1、2点的SG不同。将图分层操作,状压储存。并没有搞清楚实现细节
Test 6
对于一个初始值为0的序列{an},共染k次颜色,每次可以在[l,r]上覆盖上第i种颜色。询问最终可能序列的方案数。
法一:基础的dp
法二:数学方法求解辅助多项式F(x)
Test 7
定义一个森林的价值为森林中每棵树的点数的平方和。现在给定一颗n≤1e5的树,求随机删去i=1...n条边后的森林的价值的期望。
「简单」的计数/数据结构题。
然而我依然不会
15:07:下午第二场开讲,吴瑾昭的网格图算法选讲
听主讲人说这是今年冬令营的某营员交流课件
完全连通
bzoj1001
求网格图最大流/最小割
ZJOI2016旅行者
正权网格图多次询问最短路
网格图的SSSP
首先这个网格图是有可能有负边但是一定没有负环的,那么因为:
- dijkstra无法跑负权图
- SPFA在网格图上跑多半是会爆炸的
所以要考虑新的SSSP
这个网格图的SSSP是个分治操作。
令sp(G, s)为求图G中点s到其他各点的距离
- 若G的节点数小于等于2,则返回
- 沿着G的长边的中线把G分为G0,G1
- 取中线上一点r
- Di = sp(Gi, r)
- 算出Gi中任意两个中线上的点的距离δi[u][v]
- 对每个中线上的点v算出B[v] = dist(r, v)
- 对每个点v算出d'[v] = dist(r, v)
- 对每个点v算出d[v] = dist(s, v)
- d即为所求
然后还讲了step6,7,8的具体实现细节。但是台下有人在听吗???
Decremental 2-Edge-Connectivity
网格图之桥
今天讲课用到好多高级的数据结构、玄学的数学方法和那个神奇的FFT……
嗯……还有非常非常多东西要学。有些怀疑一年之后能否达到这样的水平……
ZJOI day2 游记
8:31:绍一季雨田开始讲课
然而课件名称叫做“CF水题选讲”
CF578E Walking!
CF788D Recover a functional graph
题目大意
交互题:平面上有一些平行于x轴和平行于y轴的直线。每次询问可以询问平面上的一个点,交互库会给出与这个点距离最近的直线的距离。你需要确定所有的直线。
数据范围
平行于x轴或y轴的直线条数个不超过1e4,坐标范围绝对值不超过1e8.询问次数不能超过3e5
看上去可做的交互题……但是如果有很多平行于y轴的直线岂不是很难判断
标算
询问形如(x,x)的点,当得到的答案为0时,则询问点(x,t)和(t,x)和(t,x)确定答案是否为0,其中保证(t,t)答案不为0。
因此倍增做下去就可以了。
然而这题是会被卡常数的。分析一下发现在初始几步浪费比较大,所以可以在(x0, x0)的答案为0时判断(x0+1e3,x0+1e3)的答案是否为1e+3,是则直接跳到(x0+1e3,x0+1e3).
CF713E Sonya Partymaker
题目大意
有n个人,m个凳子,其中凳子是环形排布的。
CF744D Hongcow Draws a Circle
题目大意
平面上有n个红点,m个蓝点。需要画一个最大的圆,满足圆内至少有一个红点,且没有蓝点。边界上的点可以视为在圆内,也可以不在。输出最大的圆的半径。无限大则输出-1。
mine
我的想法是给蓝点求个凸包先?
标算
- 如果有红点不在蓝点形成的凸包内,显然输出-1
- 如果答案有限,
CF618G Combining Slimes
题目大意
有一个1xm的面板,两个值为x的数字块碰到一起会形成一个x+1的数字块。一开始面板上没有数字块。接下去会一直执行以下操作,直到无法操作:在面板最右端会生成一个数字块,有p的概率这个数字块的值是1,有1-p的概率这个数字块的值为2.询问最终面板上数字和的期望值。
数据范围
1 ≤ n ≤ 10^9, 1 ≤ p < 10^9
标算
……dp做法
技巧
输出实数题一般两种套路
- 二分
- 爆精度
CF794G Replace All
CF744E Hongcow Masters the Cyclic Shift
标算
建模为图论
CF704E Iron Man
题目大意
有一颗n个节点的树,有m个人,每个人有四个参数(t,c,v,u)表示这个人t时刻在点v出现,并以每秒c条边的速度向点u移动,在到达u点后消失。询问最早的相遇时刻。若u=v则表示这个人仅在t时刻出现。
数据范围
n,m≤1e5,t,c≤1e4
标算
首先考虑退化成链的做法。那么每个人都可以表示成为在t-x坐标系上的一条线段。
那么再用树剖dfs序代替x轴,再用set玄学维护就可以了(?)
CF645G Armistice Area Apportionment
题目大意
给定两点P(a,0),Q(-a,0),现在在平面上有n个点,
标算
以n个点为圆心作n个过P的圆。求所有圆交点中与点Q最近的交点,输出该交点到点Q的距离。接下去二分答案,转化为求圆上弧是否相交的问题。
(然而最后一步仍然不会)
CF750H New Year and Snowy Grid
题目大意
有一张有障碍的(永久障碍)\(h×w\)的网格图,问是否存在一条路径,从左上角出发到右下角再回到左上角,其间不重复经过同一个点(除起点外)。有\(q\)组询问,每组询问给出\(k\)个非障碍点,问是否存在不经过这\(k\)个点的合法路径。
数据范围
h,w≤1e3,q≤1e4,k≤10
标算
首先如果只有一组询问,那么这就是一个经典的网络流。我们可以将每个点拆点,如果这个点是障碍点,那么i向i'连流量为0的边,否则i向i'连流量为1的边,表示每个点只能经过一次。然后每个点向周围的四个点连流量为1的边,然后从S到T跑最大流。如果流量小于2,那么答案就是NO,否则答案就是YES.
然后试图最大流转最小割。不过因为建的不是平面图,没有方法直接最短路。
……接下去图论算法,试图构造 最短路模型。
……接下去转为连通性问题。
CF772E Verifying Kingdom
题目大意
交互题:交互库有一颗二叉树,其中有n个叶子节点,所有节点除叶子节点外都有两个儿子。每次可以询问(a,b,c)三个不同的叶子节点,交互库会回答lca(a,b),lca(b,c),lca(a,c)中深度最深的一个。输出与交互库同构的任意一棵树。
数据范围
n≤1e3,询问不能超过10n
标算
考虑挨个将点加入树中,问题转换为如何快速判断一个点在树中的位置。
然后点分治。
中午休场时分:播放《帕丁顿的熊》
下午12:59:下午第一场主讲人镇海梁晏成
课件名称:JOIsc(Japanese OI Spring Camp)好题选讲
Port Facility
Sparklers
题目描述
M个人分别在Ai的位置上站立,同时每个人都有烟花且他们每秒可以跑s米。初始只有第k个人的烟花正在燃烧,并且烟花只能够燃烧T秒;现在要将烟花传递下去。烟花能够从A传递到B当且仅当:
- A和B的位置相同
- A的烟花恰好燃烧到T秒
- B的烟花尚未燃烧
mine
那么二分答案是显然的,问题是如何check()。
Cultivationhh
题目描述
有一个W×H的格子,其中有n个格子长草。接下去可以选择上下左右四种操作。“上”操作代表所有长有草的上边一个格子长上草。
标算
先考虑一维的情况,那么只有左右的操作。
例如X---X-需要3次,而---X---X-需要4次。
设左操作有L次,右操作有R次;左边起有A个空,右边起有B个空,两块草之间有最大C个空。那么必须满足:
- L≥A
- R≥B
- L+R≥C
然后在二维中考虑上下操作的次数。继而dp处理,最终得到答案。
Broken Device
题目描述
通信题:你需要传递一个数X。
你可以发送一份长度为150位的01串。由于发送装置是损坏的,在这150位中,有指定的K位是损坏的,这些位置上只能发送0.你加密时知道这些信息。
同时需要根据你发送的01串还原出X。注意,你解码时只知道发送装置是损坏的,而不知道K的值,也不知道哪些位置只能发送0
数据范围
X≤1e18,K≤40.
mine
标算
random_shuffle? / 某种神奇的压缩方式?三位分一个段。
Railway Trip
Arranging Tickets
题目描述
有N个车站顺时针围成一圈,编号为1...N。有N种车票,其中第i种车票可以从第i个车站前往第i+1个车站;也可以从第i+1个车站前往第i种车站。
只能以套票的形式购买车票,一组套票包含每一种车票恰好一张。
现在有M类人,第i类人共有Ci个,他们都要从Ai前往Bi个车站,询问要满足所有人至少需要多少组套票。
标算
(有些抽象……加上我想睡觉了……自从没有听懂讲课的“翻转”操作之后就再也没听懂了……)
Long Mansion
标算
似乎是DP?
Natural Park
题目描述
交互题:有一个N个点,M条边的无向图,每个点的度数≤7.每次你可以询问(x, y, p[]),交互库会返回只经过p[]中的点能否从x走到y
最多询问45000次,求这张图
数据范围
N,M≤1500
标算
先考虑树退化为链的过程;然后再……
Long Distance Coach
题目大意
有一辆客车从0前往W,车速为每秒一个单位长度。途中有N个补给站位于S1,...,Sn。在起点或补给站可以给客车的饮水机加水,其中饮水机容量不限且每一单位的水价格均为W。
起初车上有M个乘客,第i个乘客会在时刻Di+T×k喝一单位的水;如果此时饮水机没有水了,这位乘客就会下车并且索要Ci的赔偿费。不会有人在补给站的时候需要喝水。
司机会在所有T×k的时候喝一单位的水,此时饮水机内必须要有水
询问如何分配在起点和补给站加水的量,使得总花费最小。
mine
显然的,既然饮水机容量不限且水的单价相同,那么可分为两种情况:
- 让所有人都有水喝:在起点就买下所需的水。
- 把那些要求赔偿费的乘客赶下去:起点所买的水小于所需的
但是如何继续贪心呢?……
标算
同上分为两类,然后dp做法。
转移方程显而易见之后考虑复杂度。然后据大佬所说,可以斜率优化+单调栈优化dp;或者cdp分治维护一下;或者一种用gcd的方法优化(?)
Abduction 2
题目描述
有
ZJOI2018游记Round1的更多相关文章
- ZJOI2018游记Round2
Day0 趁着空档还溜回班上了一节物理课:瓢泼之中在9:00赶往余姚,车程3h+-- 中饭在一家饭馆,味道海星. 晚上和ykh,chj,xzt溜去吃一鸣和烧烤.一鸣不错,烧烤的话我因为口腔溃疡没怎么吃 ...
- ZJOI2018游记
我是一只普及组的菜鸡,我很菜 我参加 \(ZJOI\) 只是来试试水(水好深啊~),看看大佬(差距好大啊~),以后要好好学习 \(day0\) 下午2:00,颁奖 还以为要到很晚,还是挺快的 \(da ...
- AHOI2018训练日程(3.10~4.12)
(总计:共90题) 3.10~3.16:17题 3.17~3.23:6题 3.24~3.30:17题 3.31~4.6:21题 4.7~4.12:29题 ZJOI&&FJOI(6题) ...
- SDOI 2019 Round1 游记
\(SDOI~2019 ~ Round1\) 游记 \(Day ~0\) 报道.骑车子去的,好热.到了之后看到好几个同校神仙,还从那里莫名其妙的等了一会,然后交了钱签了名就拿挂牌走人了.现在居然还有受 ...
- 【NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2】游记
我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪 ...
- zjoi2018 day1游记
咕咕咕 upd:看见有人贴上zhihu的问题,那个我早就看到了... 谴责一番题主 @gzy_cjoier 阅读量马上700没想到吧 既然这么火我挂个广告吧 永别,OI 听说有人催更??
- ZJOI2018 Round2 游记
day0 高铁上颓了一部电影,然后闭上眼睛就到了 醒来之后发现被绑了艹,袖子被打了个结,搞了 \(20\) 分钟才解开,真想把绑我的人吊起来 \(xxx\) 公交车上碰到一位长者,被教育了一顿 长者: ...
- ZJOI2018 round^2 游记
Day0 一早起来6点左右,吃完早饭去班里拿了书包就来机房,说实话怕被打[手动滑稽]. 在车上大约经历了3个半小时的车程,终于到达了目的地:余姚.当然基本上大家的设备电量都不多了,除了某些上车睡觉的大 ...
- ZJOI2018 day2游记
省选讲课:还不错吧 ZJOI RP++ Day2: 题出的好!覆盖知识点广,题目又着切合实际的背景,解法比较自然. 给出题人点赞 ! 意识模糊地点开了题(考前不熬夜似乎还是很困qaq) T1:前一个小 ...
随机推荐
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie路径问题
操作Cookie时,需要注意路径问题: 设置操作:任何路径都可以设置Cookie,但是有时我们也是用设置进行替换Cookie和删除Cookie(maxAge=0)! 替换:只能由完全相同的路径来操作! ...
- centos 7 安装pip和pip3
首先安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pip 安装完成之后清除cache: yu ...
- C#基础之方法
方法组成为: public void Fun(string name) { 代码块 } 1.方法的访问级别:修饰符,即上边的Public 2.返回类型:方法是否具有返回值,上边方法无返回值即为void ...
- Django REST framework 的快速入门教程
CRM-API项目搭建 序列器(Serializers) 首先,我们来定义一些序列器.我们来创建一个新的模块(module)叫做 crm/rest_searializer.py ,这是我们用来描述数据 ...
- netty与MQ使用心得
最近在做分布式的系统,使用netty与mq进行远程RPC调用,现将心得经验总结一下. 我们公司的服务器在云端机房,在每一个店面有一个服务器,店面服务器外网无法访问. 我们的做法是店面服务器在启动时与云 ...
- Codeforces 1139E(二分图最大匹配)
pi只有0-5000且只找最小的没出现的,又要找不同club的,考虑二分匹配,左边pi,右边ci,一个匹配一个.离线倒着加边即可. const int maxn = 5e3 + 5; int m, n ...
- String的小笔记
String类的对象是不可变的! 在使用String类的时候要始终记着这个观念.一旦创建了String对象,它就不会改变. String类中也有可以改变String中字符串的方法,但只要是涉及改变的方 ...
- H5 之 Page Visibility
这个是今天刚发现的,想起之前那个在页面用video标签视频播放,别人切换页面后仍在继续播放,体验很不好,用这个API就可以很完美的解决. Page Visibility API 可以让你获取到这种状态 ...
- Java-IDEA环境搭建swagger
1.项目POM导入包(使用Maven管理的代码) 2.POM文件导入包 <dependencyManagement> <dependencies> <dependency ...
- ubuntu键盘映射
在sublime下开发习惯把CapsLock和Shift间交换,windows下有很多软件可以修改键盘映射,在ubuntu下可以是哦用xmodmap命令,使用方法如下: 在自己用户的home目录下新建 ...