九省联考 2018 游记

Day0:乘火车到了上海。明天就是激动人心的比赛啦

深夜和室友看《我在七年后等你》。这真是一款不错的手游,让人印象深刻啊

Day1:迷迷糊糊到了学校。编程环境是Win7?不太习惯啊。

    T1:一眼状压dp题。

    T2:肯定可以建成一棵树,然后直接贪心?不对啊,T2不应该这么水啊(开始怀疑)

    T3:乍一看怎么一点思路没有啊。

  8:40~11:10:持续思考T3中。

  11:10:终于有思路了!如果直接NTT向上dp的话,因为链的情况复杂度会不对,所以似乎可以树剖!用线段树分治和NTT处理重链上的dp!

  仔细想了想,感觉没问题。但n^2log(n)^3这个复杂度大有问题啊。。

  代码难度极大。冷静下来理智分析了一下,毅然开始写暴力。

  12:30:考试结束了,询问别人后发现,T2直接贪心是错的。。(没事还有暴力分)

  下午讲题:

    T1:果然一眼题

    T2:再冷静分析一下,其实只要线段树上二分就可以解决了

    T3:点分+动态dp+线段树+NTT?方法可能和我不大一样。但是题解做法两个log,好优秀啊。

      据说代码7K。没有去写它果然是正确的选择。

  分数出来了:100+0+55。。T2怎么炸了啊?

  似乎是用sort函数,没有加algorithm头文件,所以CE了。(本地竟然还过编了)

  深夜,打了十几次《几何战争》。这游戏好难啊!新手关都不能一遍过

  day2 rp++

Day2:

  连续两天修仙身体终于熬不住了,趴在桌上休息了好一会儿。

  瞄了一眼T2题目lct?渐渐开始感兴趣

    T1:题好长啊啊。

      网络流一眼题?复杂度不太对?C<=10,限制了图的边数。好吧果然是一眼题。

      时间复杂度O(n^2*C*log(n))

      在昏昏欲睡的状态下写了一个小时。竟然代码那么长。。

    T2:题很短。

      很容易发现,题目要求的是在树上找到恰好K+1条互不接触的路径,使得权值和最大。

      这怎么做啊。。

    9:00~10:30:持续想T2中。没有结果。

    T3:放弃T2希望后,开始看T3。 

      第一档部分分:暴力

      sigma ri-li <= 1000000:一眼后缀自动机

      冷静一下,用后缀数组好像很方便?

      n,q<=50000,可以求出sa,height数组之后,每次询问转换成区间查询,一眼可以莫队的样子。

      100%数据:这个区间查询不太好维护的样子。怎么办呢?

        把height从大到小排序,每次把当前height相邻两个位置的splay启发式合并起来?

      似乎很简单?

  11:00:犹豫要不要写正解。反正day1考炸了,今天考试当然要自由地浪啦!

    开始写正解。

    头脑突然清醒,飞快地开始码splay。

  12:10:我竟然用一个小时左右的时间将这180行代码写完了!不可思议。

    测了发样例,输出0 0。。

    为什么会这样?!

    仔细看一眼题目:[1,l]或[l+1,r-1]或[r,n]中存在。。我把“或”看成“且”了。。

    冷静分析一下,只是多了一堆分情况讨论罢了。

    其实只要在原先代码的基础上,把query改一改。。

    出题人怎么这么欺负人啊?!同一种算法非要再加些细节!呜呜呜

  12:30:query还有一句话没写完。全剧终。。

  赛后:zhanzy告诉我T2因为答案关于k是凸函数,只要二分斜率就好了。好有道理啊!!果然自己还是naive

自我评价:

  在考场上冒险写正解果然是一种刺激的体验啊,就跟zjoi2018 day1 T2一样。

  当时那道码农题花了一大半时间写,

  这次只用了一个小时左右的时间大致写完了,感觉自己真是大有进步hh

  虽然这套试题没有zjoi难,没有“九条可怜”老师出的好,但是题目很温馨,让我们这些饱经磨难的ZJ选手重振了信心。

  九省联考结束了。ZJOI day2快到了。

  希望day2难度hardest ever!

  祝ZJOI2018 day2 rp++!!

原文地址:https://www.cnblogs.com/Blog-of-Eden/p/8734502.html

时间: 2024-10-08 14:55:24

九省联考 2018 游记的相关文章

【BZOJ5248】【九省联考2018】一双木棋(搜索,哈希)

[BZOJ5248][九省联考2018]一双木棋(搜索,哈希) 题面 BZOJ Description 菲菲和牛牛在一块n行m列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手.棋局开始时,棋盘上没有任何棋子, 两人轮流在格子上落子,直到填满棋盘时结束.落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且 这个格子的左侧及上方的所有格子内都有棋子. 棋盘的每个格子上,都写有两个非负整数,从上到下第i行中从左到右第j列的格子上的两个整数记作Aij.Bij.在 游戏结束后,菲菲和牛牛会分别计算自己

[luogu] P4364 [九省联考2018]IIIDX(贪心)

P4364 [九省联考2018]IIIDX 题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在,他在世界知名游戏公司KONMAI 内工作,离他的梦想也越来越近了. 这款音乐游戏内一般都包含了许多歌曲,歌曲越多,玩家越不易玩腻.同时,为了使玩家在游戏上氪更多的金钱花更多的时间,游戏一开始一般都不会将所有曲目公开,有些曲目你需要通关某首特定歌曲才会解锁,而且越晚解锁的曲目难度越高. 题目描述 这一天,Konano 接到了一个任务

[BZOJ5251][九省联考2018]劈配(网络流)

5251: [2018多省省队联测]劈配 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 33  Solved: 22[Submit][Status][Discuss] Description 一年一度的综艺节目<中国新代码>又开始了. Zayid从小就梦想成为一名程序员,他觉得这是一个展示自己的舞台,于是他毫不犹豫地报名了. 题目描述 轻车熟路的Zayid顺利地通过了海选,接下来的环节是导师盲选,这一阶段的规则是这样的: 总共n名参赛选手(编号

JSOI2018R1(九省联考R1)游记

day0 这次考场在南理工 晚上17:00去看考场 有windows好评 敲了个NTT板子 发现是错的 回家的路上发现错误在把998244353打成998242353了 晚上随便找了个树剖裸题练手 本来以为10分钟能搞定 结果刚了一晚上 最后发现是lca写错了 这也能错.jpg 为day1爆炸埋下伏笔 day1 先看t1 这不是一眼题吗 轮廓线动态规划 (skylineDP) 叫我的名字怎么可以写错 写完以后发现没过样例 调了一下过了 然后没过大样例 我诞生了一个奇怪的错误的想法 并错误地证明了

[BZOJ5248][九省联考2018]双木棋chess

bzoj luogu sol 首先,要保证一个格子的左边和上方都放满了棋子,就需要这个点的左上方那个矩形都放满了棋子. 这样放旗子状态就会是一个自左下至右上的轮廓线. 状态数? 跟\(yyb,ppl\)讨论了一下状态数理论上应该是\(C_{20}^{10}\)啊. 然而... #include<cstdio> #include<algorithm> using namespace std; int n,m,a[20],tot; void dfs(int u) { if (u==n+

[九省联考 2018]一双木棋chess

Description 题库链接 给出一个 \(n\times m\) 的棋盘,棋盘的每个格子有两个权值 \(A,B\) . Alice 和 Bob 轮流操作在棋盘上放棋子,一个格子能放棋子的前提条件是这个格子的左侧和上侧均放了棋子.对于 Alice 放棋子的格子,能获得该格子的 \(A\) 的权值:对于 Bob 放棋子的格子,能获得该格子的 \(B\) 的权值. Alice 想最大化得分差, Bob 想最小化得分差,求最后得分差. \(1\leq n,m\leq 10\) Solution 比

[九省联考 2018]IIIDX

Description 题库链接 给你 \(n+1\) 个节点的一棵树,节点编号为 \(0\sim n\) , \(0\) 为根.边集为 \(\mathbb{E}=\left\{(u,v)\big|\forall i\in[1,n],\left(\left\lfloor\frac{i}{k}\right\rfloor,i\right)\right\}\) .给出 \(n\) 个待选序号,让你为 \(1\sim n\) 这 \(n\) 个节点编号,第 \(i\) 号节点编为 \(a_i\),要求父

[九省联考2018]林克卡特树(DP+wqs二分)

对于k=0和k=1的点,可以直接求树的直径. 然后对于60分,有一个重要的转化:就是求在树中找出k+1条点不相交的链后的最大连续边权和. 这个DP就好.$O(nk^2)$ 然后我们完全不可以想到,将best[k](选择k条链的答案)打表输出,更不可能然后作差分,发现得到的数组是递减的. 这说明:best[k]是一个上凸包. 于是我们可以二分一个斜率去切这个凸包(类似导数),根据切点横坐标与k的大小旋转直线(改变斜率). 考虑给你一个直线斜率k,怎么找到它和凸包的切点.实际上就相当于将这个凸函数减

P4363 [九省联考2018]一双木棋

题面 这种搜索要把后继状态都跑出来之后取Min/Max 也就是回溯的时候进行操作 记得用hash进行记忆化(用map不开O2会TLE) #include<iostream> #include<cstdlib> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<map> #define rg register #de