首页 > TAG信息列表 > HNOI2019

[HNOI2019] JOJO

一、题目 点此看题 二、解法 首先不考虑 \(2\) 操作,考虑怎么向串的末尾加入 \(x\) 个字符 \(c\),下文将其称之为“一段”。 注意到关键条件:对于加入的字符 \(c\),保证之前串尾的字符不是 \(c\),考虑整段整段地跑 \(\tt kmp\),在两个段完全相同(指个数和字符)时跳出。根据题目条件,如果两

[HNOI2019] 校园旅行 —— 一个边界数据

https://www.luogu.com.cn/problem/P5292 考虑如下数据: 9 9 1 101011101 1 2 2 3 3 4 1 4 4 5 5 6 6 7 7 8 8 9 1 9 它询问下图中\(1\)到\(9\)是否有回文串: 其中括号里的是颜色,括号外的是节点编号,加黑的点是一个回文串。 如果按题解里的算法,建出来的图是这样的:(不信可以随便用一

[HNOI2019] 白兔之舞

Problem 有一张顶点数为 \((L+1)\times n\) 的有向图,每个节点用二元组 \((u,v)\) 来表示(\(0\le u\le L,1\le v\le n\)),节点 \((u_1,v_1)\) 到 \((u_2,v_2)\) 有 \(w_{v_1,v_2}\) 条不同的边,当且仅当 \(u_1<u_2\)。 初始时白兔在 \((0,x)\),每次沿着一条路跳到下一个节点,它可以在任意

[HNOI2019] JOJO

题意: 初始有一个空串,有n次操作: $(1,x,c)$,表示在当前串后添加x个字符c,保证c不同于当前串末尾的字符。 $(2,x)$,表示将当前串变成第x次操作后的串。 每次操作完你需要输出$\sum \limits_{i=1}^{n}{nxt(i)}$,其中$nxt(i)$与kmp中的nxt同义。 $n\leq 10^{5},x\leq 10^{4}$。   题解:

[HNOI2019]JOJO

[HNOI2019]JOJO [题目链接] 链接 [思路要点] 题目询问的是当前字符串做 \(\text{kmp}\) 之后的 \(\text{nxt}\) 数组的值的和 首先考虑没有第二种操作的情况 将添加操作看成添加一个字符,这个字符有两个属性,长度和字符。 不难发现,两个子串相匹配,每个子串拆分成开头某一段的后缀 + 中

loj#3056. 「HNOI2019」多边形

通过观察样例我们可以得到这样的结论 先将所有和d相连的边删掉,得到一堆区间,然后旋转这些区间的顶点边,使它变得和d相连 重复上述流程直到我们得到了一堆长度为1的区间们 那么很容易的看出上面的操作流程构成了一颗树的结构,除了根节点度数不确定每个点的度数都是2 方案数也十分显然就

【题解】Luogu P5294 [HNOI2019]序列

原题传送门 题意:给你一个长度为\(n\)的序列\(A\),每次询问修改一个元素(只对当前询问有效),然后让你找到一个不下降序列\(B\),使得这两个序列相应位置之差的平方和最小,并输出这个最小平方和 观察样例说明,发现一个很有趣的性质,\(B\)中数字相同的一段的数字正好是\(A\)中这段数字的平均数

[HNOI2019]白兔之舞(矩阵快速幂+单位根反演)

非常抱歉,这篇文章鸽了。 #include<bits/stdc++.h>using namespace std;typedef long long ll;#define cp complex<long double>#define pi acosl(-1)const int N=6e5+7;struct mat{ll a[5][5];}A1,A2;ll n,k,l,X,Y,mod,w,nn,ans[N],a1[N],a2[N],R[N];cp A[N],B[N],C[N],D[

[HNOI2019]JOJO

https://www.luogu.org/problemnew/show/P5287 题解 可持久化\(KMP\)。 那个退回操作我们可以把它看做在操作树上\(dfs\),所以我们可以先把这个树弄出来。 对于连续一段串的匹配问题。 我们可以搞个\(KMP\)自动机,输入当前节点编号也就是\(nxt\),输入下一段连续的字符串,输出\(nxt\)跳

[HNOI2019]多边形

https://www.luogu.org/problemnew/show/P5288 题解 非常有意思的一道题。 首先观察可得最终的不能继续操作的状态一定是所有边都连向\(n\)的。 我们还可以发现最优的操作一定是依次将每条边调整为连向\(n\)的。 所以最小的操作次数就是\(n-3-\)连向\(n\)的边的条数。 我们假设现在

[HNOI2019]白兔之舞

memset0 多合一无聊题 mod k=t,并且k是p-1的约数 单位根反演石锤了。 所以直接设f[i]表示走i步的方案数, 然后C(L,i)分配位置,再A^i进行矩乘得到f[i] 变成生成函数F(x)=∑f[i]=(A*x+I)^L 求指数mod k=t的系数的和 偏移之后,进行单位根反演 对于t都要求? NTT 然后WA了 因为要任意模数NTT,

[HNOI2019]校园旅行

题目 过于神仙啊,抄题解.jpg 首先\(n\)并不是很大啊,我们可以直接用\(f_{i,j}\)表示\(i\)到\(j\)是否存在一个回文路径 对于一条回文路径,如果在两端分别添加一个相同的字符,那么仍然是一个回文路径,于是我们可以利用这个来打一个暴力\(bfs\) 就像这样 while(!q[0].empty()) { i

【loj3059】【hnoi2019】序列

题目 给出一个长度为 \(n\) 的序列 \(A\) ; 你需要构造一个新的序列\(B\) ,满足: $B_{i} \le B_{i+1} (1 \le i \lt n ) $ $\sum_{i=1}^{n} (A_i - B_i)^2 $ 最小 题解 出题人和题解在这里 : http://15283746.blog.uoj.ac/blog/4966 我只是整理了一下证明(Part 1)并套了一种做法(

[HNOI2019]鱼(计算几何)

看到数据范围n<=1000,但感觉用O(n^2)不现实,所以考虑方向应该是O(n^2logn)。 一种暴力做法:用vector存到1点相同的2点和到2点相同的1点,然后枚举A,枚举BC,再枚举D,然后枚举EF,O(n^4),但复杂度远远不满(符合条件的太少,而且也卡不掉),所以可以获得40pts的好成绩。 正解: 首先可以想到一点:确定A,D两

[HNOI2019]多边形

Luogu5288 注意:n边形里共有n-3条边 最优步数=不与n相连的边数,关键是方案数. 按照处理顺序可以转化为树形结构即二叉树森林,转移方案数用组合数即可 关键是快速处理修改. 1.最优解减少一步,即删掉某棵二叉树的根,合并它的两个儿子. 2.相当于在splay中把它rotate一下,而且不知道为什么它还一

luogu P5292 [HNOI2019]校园旅行

传送门 首先考虑暴力M^2dp,考虑回文串是可以从回文中心每次在两边拓展的,设\(f_{i,j}\)为\(i\)到\(j\)的路径是否是回文串,bfs转移,枚举两点出边,如果两个新端点颜色相同就更新 然后这个大暴力可以优化到70',就是先枚举一端的相邻的点,然后注意到因为固定了那个相邻的点,对应的另一

Loj #3055. 「HNOI2019」JOJO

Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画。漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」。 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 \(x\) 欧拉或者 \(x\) 木大表示有 \(x\) 个欧拉或者木大。 为了简化内容我们现在用字母表示喊出的

luogu P5293 [HNOI2019]白兔之舞

传送门 关于这题答案,因为在所有行,往后跳到任意一行的\(w_{i,j}\)都是一样的,所以可以算出跳\(x\)步的答案然后乘上\(\binom{l}{x}\),也就是枚举跳到了哪些行 如果记跳x步的方案是\(f_x\),\(n=1\)时,\(f_x={w_{1,1}}^x\);\(n>1\)时,因为n很小,转移可以写成矩阵,然后矩阵快速幂后就

Loj #3057. 「HNOI2019」校园旅行

Loj #3057. 「HNOI2019」校园旅行 某学校的每个建筑都有一个独特的编号。一天你在校园里无聊,决定在校园内随意地漫步。 你已经在校园里呆过一段时间,对校园内每个建筑的编号非常熟悉,于是你情不自禁的把周围每个建筑的编号都记了下来——但其实你没有真的记下来,而是把每个建筑的编号

luogu P5294 [HNOI2019]序列

传送门 这题真的牛皮,还好考场没去刚( 这题口胡起来真的简单 首先枚举D点,然后对其他所有点按极角排序,同时记录到D的距离.然后按照极角序枚举A,那么鱼尾的两个点的极角范围就是A关于D对称的那个向量,然后左右各\(\frac{\pi}{2}\),因为A的极角增大,区间也会往后移,然后问题就是一个

HNOI2019 白兔之舞 dance

HNOI2019 白兔之舞 dance 显然\(n=3\)就是\(n=1\)的扩展版本,先来看看\(n=1\)怎么做。 令\(W=w[1][1]\),显然答案是:\(ans_t=\sum_{i\mod k=t}^{L}W^i\binom{L}{i}\) \(=\sum_{i=0}^{L}[k|(i-t)]W^i\binom{L}{i}\) 这时用一个单位根反演。 回顾一下,单位根是fft时用到的东西,\(\omega_{

[HNOI2019]多边形(模拟,组合计数)

[HNOI2019]多边形(模拟,组合计数) 题面 洛谷 题解 突然特别想骂人,本来我考场现切了的,结果WA了几个点,刚刚拿代码一看有个地方忘记取模了。 首先发现终止态一定是所有点都向\(n\)连边(看样例图解就知道了) 那么大力猜想一下第一问的答案一定是\(n-3-\)和\(n\)号点直接相连的边数。 手玩

HNOI2019游记

前言 本来计算着退役稳了根本就不想写什么游记啥的,但是既然老天并没有让我退役,那就还是写一些记录一下吧。 Day0 省选前一天随便打了一些板子和复习然后就过了。 Day1 开场看题。 T1计算几何?? 感觉有点不好。 T2字符串题,50分可以直接写暴力。 T3多边形?这又是个什么鬼题。 感觉今

HNOI2019游记

\(Day_0\) 十点半开始睡觉,开始了八个小时的不眠之夜,整晚都没睡着,这状态明天肯定挂了 \(Day_1\) 开局一条鱼,计算几何只会\(20\) 还是\(T2\)的\(20\)纯暴力好打,\(8.30:\)输出不了,配置都记错了,问旁边的小哥,发现用的配置完全不一样 发呆到了\(9.00\),心态完全崩掉 等等,用\(IDE\)随便打打

HNOI2019游记

HNOI2019游记 Day0 这么快啊,明天就是省选了。 说真的,从高一到高二,完完全全是两种不一样的心态吧。高一的时候总觉得明年还有一年,是相当放松的,对于结果无所谓。到了高二再说没有压力全是假的,毕竟是决定一切的比赛了。所以当听到初三、高一的说着“要退役了”,心里很不是滋味。到了现