广告

ZJOI2018Round2游记


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到其他各点的距离

  1. 若G的节点数小于等于2,则返回
  2. 沿着G的长边的中线把G分为G0,G1
  3. 取中线上一点r
  4. Di = sp(Gi, r)
  5. 算出Gi中任意两个中线上的点的距离δi[u][v]
  6. 对每个中线上的点v算出B[v] = dist(r, v)
  7. 对每个点v算出d'[v] = dist(r, v)
  8. 对每个点v算出d[v] = dist(s, v)
  9. 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. 如果有红点不在蓝点形成的凸包内,显然输出-1
  2. 如果答案有限,

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

显然的,既然饮水机容量不限且水的单价相同,那么可分为两种情况:

  1. 让所有人都有水喝:在起点就买下所需的水。
  2. 把那些要求赔偿费的乘客赶下去:起点所买的水小于所需的

但是如何继续贪心呢?……

标算

同上分为两类,然后dp做法。

转移方程显而易见之后考虑复杂度。然后据大佬所说,可以斜率优化+单调栈优化dp;或者cdp分治维护一下;或者一种用gcd的方法优化(?)

Abduction 2

题目描述

ZJOI2018游记Round1的更多相关文章

  1. ZJOI2018游记Round2

    Day0 趁着空档还溜回班上了一节物理课:瓢泼之中在9:00赶往余姚,车程3h+-- 中饭在一家饭馆,味道海星. 晚上和ykh,chj,xzt溜去吃一鸣和烧烤.一鸣不错,烧烤的话我因为口腔溃疡没怎么吃 ...

  2. ZJOI2018游记

    我是一只普及组的菜鸡,我很菜 我参加 \(ZJOI\) 只是来试试水(水好深啊~),看看大佬(差距好大啊~),以后要好好学习 \(day0\) 下午2:00,颁奖 还以为要到很晚,还是挺快的 \(da ...

  3. 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题) ...

  4. SDOI 2019 Round1 游记

    \(SDOI~2019 ~ Round1\) 游记 \(Day ~0\) 报道.骑车子去的,好热.到了之后看到好几个同校神仙,还从那里莫名其妙的等了一会,然后交了钱签了名就拿挂牌走人了.现在居然还有受 ...

  5. 【NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2】游记

    我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪 ...

  6. zjoi2018 day1游记

    咕咕咕 upd:看见有人贴上zhihu的问题,那个我早就看到了... 谴责一番题主 @gzy_cjoier 阅读量马上700没想到吧 既然这么火我挂个广告吧 永别,OI 听说有人催更??

  7. ZJOI2018 Round2 游记

    day0 高铁上颓了一部电影,然后闭上眼睛就到了 醒来之后发现被绑了艹,袖子被打了个结,搞了 \(20\) 分钟才解开,真想把绑我的人吊起来 \(xxx\) 公交车上碰到一位长者,被教育了一顿 长者: ...

  8. ZJOI2018 round^2 游记

    Day0 一早起来6点左右,吃完早饭去班里拿了书包就来机房,说实话怕被打[手动滑稽]. 在车上大约经历了3个半小时的车程,终于到达了目的地:余姚.当然基本上大家的设备电量都不多了,除了某些上车睡觉的大 ...

  9. ZJOI2018 day2游记

    省选讲课:还不错吧 ZJOI RP++ Day2: 题出的好!覆盖知识点广,题目又着切合实际的背景,解法比较自然. 给出题人点赞 ! 意识模糊地点开了题(考前不熬夜似乎还是很困qaq) T1:前一个小 ...

随机推荐

  1. IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie路径问题

    操作Cookie时,需要注意路径问题: 设置操作:任何路径都可以设置Cookie,但是有时我们也是用设置进行替换Cookie和删除Cookie(maxAge=0)! 替换:只能由完全相同的路径来操作! ...

  2. centos 7 安装pip和pip3

    首先安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pip 安装完成之后清除cache: yu ...

  3. C#基础之方法

    方法组成为: public void Fun(string name) { 代码块 } 1.方法的访问级别:修饰符,即上边的Public 2.返回类型:方法是否具有返回值,上边方法无返回值即为void ...

  4. Django REST framework 的快速入门教程

    CRM-API项目搭建 序列器(Serializers) 首先,我们来定义一些序列器.我们来创建一个新的模块(module)叫做 crm/rest_searializer.py ,这是我们用来描述数据 ...

  5. netty与MQ使用心得

    最近在做分布式的系统,使用netty与mq进行远程RPC调用,现将心得经验总结一下. 我们公司的服务器在云端机房,在每一个店面有一个服务器,店面服务器外网无法访问. 我们的做法是店面服务器在启动时与云 ...

  6. Codeforces 1139E(二分图最大匹配)

    pi只有0-5000且只找最小的没出现的,又要找不同club的,考虑二分匹配,左边pi,右边ci,一个匹配一个.离线倒着加边即可. const int maxn = 5e3 + 5; int m, n ...

  7. String的小笔记

    String类的对象是不可变的! 在使用String类的时候要始终记着这个观念.一旦创建了String对象,它就不会改变. String类中也有可以改变String中字符串的方法,但只要是涉及改变的方 ...

  8. H5 之 Page Visibility

    这个是今天刚发现的,想起之前那个在页面用video标签视频播放,别人切换页面后仍在继续播放,体验很不好,用这个API就可以很完美的解决. Page Visibility API 可以让你获取到这种状态 ...

  9. Java-IDEA环境搭建swagger

    1.项目POM导入包(使用Maven管理的代码) 2.POM文件导入包 <dependencyManagement> <dependencies> <dependency ...

  10. ubuntu键盘映射

    在sublime下开发习惯把CapsLock和Shift间交换,windows下有很多软件可以修改键盘映射,在ubuntu下可以是哦用xmodmap命令,使用方法如下: 在自己用户的home目录下新建 ...