首页 > 其他分享 >NOIP 游记

NOIP 游记

时间:2023-11-15 10:47:34浏览次数:41  
标签:20 NOIP 短路 leftrightarrow mathcal 游记 复杂度 关键点

Day -4

教练从代码源整来一套模拟赛,yx 又登顶了/kt/kt/kt。

T1 太恐怖了,完全不会,但是 cly 一眼秒。排序之后如果不考虑合法性,一定是 \(1\leftrightarrow 2,2\leftrightarrow 3\dots 2n-1\leftrightarrow 2n\)。然后加上限制,发现如果当前配对 \(2i-1\leftrightarrow 2i\) 不合法,就说明它需要和左边的数字对或者右边的数字对进行重组,而重组的代价是原本一个间隔没有被算到答案里,现在需要算两次。容易发现这样一定是最优的方案,否则会造成更多的贡献。然后就可以直接 DP 了。\(f_{i,0}\) 设强制第 \(i\) 个数字对右边的间隔不选的最小代价,\(f_{i,1}\) 为强制选的最小代价,转移方程是平凡的。

T2 大模拟,复刻今年 T3 是吧。

T3 不会。

T4 神奇题目。赛时思路:分块。块外的点要到达块内需要到达块内的某个点一定需要经过最边上的 \(20\) 个点,然后每个块内预处理每个点到这 \(20\) 个点的最短路,然后大块之间在连边,处理两两关键点间的最短路。计算答案就是枚举两个点所在块的关键点。但是两点在同一块内要暴力跑块内最短路,如果数据够毒把边全部集中在一个块内然后对着这个块疯狂询问就噶了。

分析一下复杂度。设块长为 \(B\),对于一条边,如果两端点在同一块内则会对 \(20\) 个关键点产生贡献,设 \(a\) 为这种边,所以第一部分预处理复杂度是 \(\mathcal O(20a\log a)\)。对于第二部分,需要处理任意两关键点最短路,边数最多为 \(\dfrac{n}{B}100+m-a\),需要跑 \(\dfrac{n}{B}20\) 次,理论复杂度 \(\mathcal O(\dfrac{n}{B}20(\dfrac{n}{B}100+m-a))\) 但是实际跑的非常快。第三部分自然就是 \(\mathcal O(q 20^2)\)。然后就会发现 \(B\) 全部在分母上。但是如果两点在同一块内就要暴力,经过测试和调整,最后 \(B\) 取的 \(1500\)。看似过不了一点实际跑的还是很快的,CF 能过,但是赛时被卡 T 了/fn/fn。

正解是分治,每次选取分支中心左右的 \(20\) 个点,预处理到各自部分的最短路。如果两个端点在两部分内,则证明一定需要经过这些关键点,答案更新完毕。否则需要继续向下递归,复杂度 \(\mathcal O(10m\log m+q\log m)\)。

标签:20,NOIP,短路,leftrightarrow,mathcal,游记,复杂度,关键点
From: https://www.cnblogs.com/WrongAnswer90-home/p/17833306.html

相关文章

  • 2023NOIP A层联测30 总结
    2023NOIPA层联测30总结题目T1草莓列车\(n\leq10^5,m\leq10^7\)赛时思路一开始看错\(m\)数据范围,以为\(O(m\logm)\)可以过,后来发现问题以后,集中在考虑线段树之类的\(\log\)级别的算法维护序列,或者线段区间,一直没有想过ST表相关数据结构,于是最后只有60。赛后......
  • 2023NOIP A层联测31总结
    2023NOIPA层联测31总结\(T1\)暴力操作:给你一个长度为\(n\)的序列\(a\),你可以花费\(c_x\)使得\(a_i\)变为\([a_i/x]\),你总共有\(k\)元。为最终序列的中位数最小是多少。保证\(n\)为奇数。\(n,m\le5*10^5\)首先想到了二分一个答案,因为只要使得前\((n+1......
  • 81st 2023/11/13 NOIP Day-4
    本次的出题人是OP小总结下T1就算切不了,也能拿很高的部分分,赛时就应该认真思考完每一部分的分看看能不能拿毕竟这里不是改题,赛时认真思考拿不到的分,认了,较劲也没什么用也不能因此而放掉这一道题,应该去看看有没有什么部分分能拿这样就算切不了题,分数也不会太难看这次T2很能说......
  • 80th 2023/11/12 NOIP Day-5
    停课训练的第一天,还有六天NOIP抓紧训练记录下今晚小小的思考,有部分偏于思维漏洞用栈模拟一类题,就是一串数中删掉中间一部分数,然后若要将两边重新连上,之前要么花大时间重新赋值,要么用链表导致失去直接用数组\(O(1)\)访问的功能,现在发现还可以用栈,若没有在线修改,那么可以从左往......
  • 游记
    本人初二,坐标JS。流水账Day0:提前请了假,在宾馆复习,却没有复习到什么Day1:CSP-JT1还是比较快地做出来了,对完几个数据也没想什么T2在考场上想应该是可反悔贪心,不会写,但最终想出来了,对数据2错了,调了一会儿T4先做的,写了个大搜索T3几乎占据了我大半时间,心炸了好几次,最后还dif......
  • P1004 [NOIP2000 提高组] 方格取数
    P1004[NOIP2000提高组]方格取数基本思路我想的是搞两次二维DP第一次搞完之后把走过的删掉,然后搞第二次,然而只有\(80pts\)#include<iostream>#include<algorithm>#include<cstdio>usingnamespacestd;intn;intx,y,t;inta[11][11];intdp1[11][11],dp2[11][......
  • 「NOIP2014」解方程 题解
    思路首先我们可以观察到\(n\)和\(m\)与\(a_i\)相比小的很多,所以我们可以考虑直接暴力求解但是\(a_i\)太大了,所以如果需要直接计算的话需要全程使用高精度算法。因为高精度算法代码量有大速度又慢我们可依考虑将\(a_i\)转化为一个极大的指数取模的结果,因为只有是模数的......
  • YCOJ734 [ 20231114 NOIP 模拟赛 T3 ] 二次函数
    题意给定\(n\)个形如\(f(x)=(x-m)^2+k\)的二次函数。\(1,m,k\)表示加入一个顶点位\((m,k)\)的二次函数。\(2,x,t\)表示删除所有\(f(x)\let\)的二次函数。求每次操作结束后还剩余几个二次函数。Sol注意到题中二次系数为\(1\),这就意味着每一个函......
  • 【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)
    [NOIP2011普及组]数字反转题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入格式一个整数。输出格式一个整数,表示反转后的新数。样例#1样例输入#1123样......
  • CSP-S 2023 游记和西南大学附属中学校(东区)暑假游记
    同步发布于洛谷博客。前言本游记分为两部分,第一部分为本人今年暑假7月份在西南大学附属中学校(东区)集训,第二部分是2023年非专业软件能力认证提高级的游记。西南大学附属中学校(东区)暑假游记由于鸽的比较久所以不可能很详细的记述了。现在主要是凭借本人自己还残存的一些记......