XMOJ 题目笔记

☆ 符号代表该比赛的订正已完成。

5 月 Div.2 ☆

场切:ABCDE

F 想出正解了,但是没写对拍 100->72,痛失 AK。

5 月 Div.1

场切:A(状压 DP)

B

TODO:

C

TODO:

D

XMOJ8516

简要题意:给定 n。你需要找一个数 w,以 w 为参数画格子:在前 nw 行每行画 w 个格子;紧接下来的一行画 nmodw 个格子紧贴左侧;以从上往下为第一关键字,从左往右为第二关键字,依次在格子中写上 1n 的数字。(下方有图解释)从 1 开始走,可以走到相邻(四连通)格子,不能走到质数格,目标为走到 n。找一个最小的 w,使得目标被满足。保证 n 不为质数。可以证明答案必然存在。n1024

原 OJ 上的图片

先写 BFS 暴力,观察可得,数据较小时无规律,数据较大时答案好像只有 814

接下来不难了啊,我怎么就把这题给弃了呢!但凡仔细分析一下可知,n 足够大时,nmod8=1n8 为质数时答案为 14,否则答案为 8

MR 判质数即可。(根据 OEIS A0142331024 范围内确定性判素可以用前 13 个质数)

6 月 Div.1

场切:A(环上 DP)

B

没想出正解,但是骗分骗到 48,非常好。

TODO:

C 跳房子游戏

XMOJ8506

想出正解了,但是 100->10。

简要题意:求 x 是数列 A010062(递推式:a1=1,ai=ai1+popcount(ai1))的第几项(或报告 x 不在该数列中)。x1012

TODO:

D 背景墙

XMOJ8627

简要题意:已知 n,m,k,求用 k 种不同颜色给 n×m 的方格染色本质不同的方案数(mod109+7)。两种方案本质不同,当且仅当两种方案不能通过上下左右的循环移位得到。n,m,k109

前置知识:Burnside 引理。

(a,b) 表示向右移 a 位,向下移 b 位的置换。

根据 Burnside 引理,可知答案为 1nm(a,b)((a,b)下的置换不变元个数)

(a,b) 作用下的轨道长均相同,为 L=lcm(ngcd(a,n),mgcd(b,m))。轨道个数为 nmL

对于置换不变元,同一根轨道上必须染同样颜色,每根轨道的染色方案互相独立,置换不变元个数为 knmL

指数太抽象,所以幂运算用 pow 代替。

1nma=1nb=1mpow(k,nmlcm(ngcd(a,n),mgcd(b,m)))=1nmd1|nd2|mpow(k,nmlcm(nd1,md2))(a=1n[d1|a][ad1nd1])(b=1m[d2|b][bd2md2])=1nmd1|nd2|mpow(k,nmlcm(nd1,md2))φ(nd1)φ(md2)=1nmD1|nD2|mpow(k,nmlcm(D1,D2))φ(D1)φ(D2)

实现精细一点,分解质因数顺便把 φ 处理好,复杂度 O(d(n)d(m)(logn+logm))

7 月 TG Day 1 图论 ☆

切 BCDEF。

A 最短路

XMOJ3353 是 BZOJ 原题。

简要题意:给定图,求 1n 最短路。n106,m107。每个数据中有部分为随机生成。空间 256MB。

vector 存图会爆空间,需要用链式前向星。

直接二叉堆优化 Dijkstra 可过(O(mlogm) 为什么能过啊喂)。用 pbds 配对堆会 MLE。

卡常数:dis[n] 被求出之后直接退出 Dijkstra。

7 月 TG Day 2 膜你赛

一道都没场切。A 其实是会的,但是懒得写高精度。

A 是 NOIP 2006 原题,直接贴洛谷链接:P1066 [NOIP2006 提高组] 2^k进制数。场上懒得写高精度,用 int128 得 80pts。这样的策略事后证明是对的,我赛后高精度调了半天。

B

是 USACO 原题,直接贴洛谷链接:P3047 [USACO12FEB] Nearby Cows G

TODO:

C

TODO:

D

是 USACO 原题,直接贴洛谷链接:P1848 [USACO12OPEN] Bookshelf G

TODO:

7 月 TG Day 3 数据结构

切 ABCE。

TODO:

7 月 TG Day 4 膜你赛 ☆

个人评价:T1 绿、T2 绿、T3 黄、T4 黄。

场切:A(种类并查集)

C(二分)6e5 2log 被卡常 100->80,非常生气。

D(树状数组)场上写对忘交了 100->15,很傻逼。

B 幸福的道路

XMOJ6076

简要题意:给定一棵 n 个节点的树,边权非负。完成两个任务:(1)对于每个点 i,求出以 i 为端点的最长树链长 Di。(2)求出 D 中最大值减最小值 m 的最长区间,输出这个最长区间的长度。n106

任务(1)的做法:两次 DFS 找到任意一条直径 AB,可以证明 Di=max(dis(A,i),dis(B,i))。时间复杂度 Θ(n)

任务(2)的做法:显然可以双指针,为了在双指针的同时维护区间内的最值,用两个单调队列。时间复杂度 Θ(n)

7 月 TG Day 5 树上问题

个人评价:T1 蓝 / 紫、T2 绿、T3 蓝 / 紫、T4 黄。

切 BD。

A 异象石

几乎是 SDOI 原题(只是答案要除以 2),直接贴洛谷链接:P3320 [SDOI2015] 寻宝游戏 & CF176E Archaeology

观察到,设当前点集按 DFS 序排序后为 {P1,P2,,Pm},则当前的答案为 12i=1mdis(Pi,Pimodm+1)。加入和删除用平衡树维护即可。

B 逃学的小孩(这题切了)

场上猜结论猜对了(喜)。

是 NOI 2003 原题,直接贴洛谷链接:P4408 [NOI2003] 逃学的小孩

TODO:

C 树网的核

场上猜结论猜到只要任选一条直径了(喜)。

是 NOIP 2007 原题,直接贴洛谷链接:P1099 [NOIP2007 提高组] 树网的核

TODO:

*E 货车运输

是 NOIP 2013 原题,直接贴洛谷链接:P1967 [NOIP2013 提高组] 货车运输

TODO:

7 月 TG Day 6 膜你赛 ☆

个人评价:T1 橙 / 黄、T2 绿、T3 蓝、T4 绿。

场切 ACD。

B 数组开小了 1,改完就过了,编辑距离为 2,非常生气。

7 月 TG Day 7 DP

个人评价:T1 黄、T2 橙、T3 橙、T4 绿、T5 黄、T6 绿、T7 紫。

切 ABCEF。

D 决斗

XMOJ1551

简要题意:TODO:。n300

环上 DP,断环成链,把链延长成原来的两倍。

fl,rl,r 两人是否能够把中间所有人干掉(为 01)。可以 O(n3) 分类讨论转移。

i 能存活到最后,当且仅当 fi,i+n=1

*G 邮局

是 IOI 2000 原题,直接贴洛谷链接:P4767 [IOI2000] 邮局 加强版

TODO:

7 月 TG Day 8 膜你赛

个人评价:T1 绿、T2 绿、T3 绿、T4 绿 / 蓝。

场切 AD。

A(这题切了)

XMOJ4641

简要题意:给定 n,mn107,m1014),求:

i=1n(1)j=1md(i×j)

n107,所以可以枚举 i。问题变为求 (j=1md(i×j))mod2。注意到 d(x)mod2=1 当且仅当 x 为完全平方数,设 i 可表示为 fi×a2 其中 fi 不含平方因子,有:

(j=1md(i×j))mod2=mfimod2

fi 可线性筛预处理。时间复杂度 Θ(n)

B

TODO:

C

KE 哥哥评价为唐题。

TODO:

7 月 TG Day 9 强连通分量

切 AB。

C 中队长

唐。

*D 最大半连通子图

7 月 TG Day 10 膜你赛

个人评价:T1 绿、T2 绿、T3 蓝、T4 绿。

场切 AB。

A 鼎纹(这题切了)

是原题,直接贴洛谷链接:P3585 [POI2015] PIE

简要题意:给定一个 n×m 的图案 A(为一个 01 矩阵,1 表示黑块,0 表示透明)和一个 a×b 的图案 B(同上),求:是否能用若干个图案 B 叠在一起(不允许旋转和翻面;不允许有格子叠了多个黑块,即所有的图案 B 的黑块不能重叠)。n,m,a,b103

好题

TODO:

B 千帆渡(这题切了)

XMOJ4645

TODO:

C 旷野大计算

XMOJ4646

TODO:

D 线性规划问题

XMOJ4718

TODO:

7 月 TG Day 11 割点割边 ☆

切 ABCDE。

懒得评,题目不好。

7 月 TG Day 12 膜你赛

场切 ABC。

TODO:

A

B

7 月 TG Day 13 哈希/ST表

个人评价:T1 黄 / 绿、T2 绿、T3 蓝 / 紫、T4 紫。

切 AB。

B 是原题,直接贴洛谷链接:P3501 [POI2010] ANT-Antisymmetry & SP15569 STC02 - Antisymmetry

C 好点对

TODO:

fii 为左端点的方案数,gii 为右端点的方案数,用单调栈可以 O(n) 求。

对于每个询问,ST 表求出最大值的下标 pi=Lp1fi+i=p+1Rgi 即为答案。

D 超级钢琴

是 NOI 2010 原题,直接贴洛谷链接:P2048 [NOI2010] 超级钢琴

TODO:

7 月 TG Day 14 膜你赛

个人评价:T1 绿、T2 绿、T3 蓝 / 紫、T4 蓝。

场切 D。

A 最长公共子序列

XMOJ4710

简要题意:给定一个长为 n 的数组 a 和一个长为 m 的数组 b保证 a 中元素互不相同,b 中元素互不相同,但是 ab 的元素可能有重复。求 ab 的最长公共子序列(即 LCS)大小。n,m3×105,值域 109

朴素 DP 是没有前途的!因为朴素 DP 无法考虑到互不相同的特殊性质,即问题变为了朴素 LCS,据说可以归约到 OV 所以复杂度不可能再往下降了。可以优化到 O(nmw),有模板题 LibreOJ6564,然而不足以通过本题。

不妨设 abt 个公共元素,那么问题变为了两个长度为 t 的排列的 LCS。抄洛谷模板 P1439 【模板】最长公共子序列 即可。时间复杂度 O(nlogn)

【重要部分】对拍

在场上做这题时,我的对拍犯了一个严重的错误,这是我的数据生成器:

mt19937 Rand(time(0));

void RandA(int n) {
    uset<int> A;
    uniform_int_distribution<int> dist(1, 1e9);
    rep(i, 1, n) {
        int a = dist(Rand);
        while (A.find(a) != A.end())
            a = dist(Rand);
        A.insert(a);
        cout << a << " \n"[i == n];
    }
}

int main() { ios::sync_with_stdio(0); cin.tie(0);
    int n = RandLR(1, 3000), m = RandLR(1, 3000);
    cout << n << " " << m << endl;
    RandA(n), RandA(m);
    return 0;
}

这样随出来的 ab 的 LCS 几乎永远是 0,对拍永远能过,因此我在场上没有发现自己代码的问题,100->30。

B 训练

XMOJ4713

简要题意:你希望在 m 单位时间(即 [0,m1] 的区间)里获得尽量多的经验值。有 n 个物品,在第 x 单位时间使用第 i 个物品会消耗 ci 单位时间(即时间变为 x+ci)获得 aibi(x+ci) 的经验值。每个物品只能最多使用一次。n103m3×103ai106。保证 aibi(x+ci) 在任何时刻都不为负数。多测,5 组数据。

邻项交换贪心。

i 在前 j 在后,则贡献为 aibi(x0+ci)+ajbj(x0+ci+cj)

j 在前 i 在后,则贡献为 ajbj(x0+cj)+aibi(x0+cj+ci)

不妨设 i 在前 j 在后,相减得 bjci>bicj,即 bici>bjcj

排序后类似 01 背包 DP 即可。O(nm)

C 鱼

XMOJ4714 懒得写简要题意。

TODO:

D 计树(这题切了)

是 HNOI 2004 原题,直接贴洛谷链接:P2290 [HNOI2004] 树的计数

简要题意:一棵 n 个节点的树,已知第 i 个节点的度数为 di,求总共有几棵满足要求的树。保证答案不超过 1017n150

根据 Prufer 序列可得答案为 (n2)!i=1n(di1)!

  • 法 1:高精度计算即可。
  • 法 2:计算分子分母中每个质因子出现次数。
  • 法 3:把答案对一个大于 1017 次方的质数取模,除法可以使用逆元。需要用 __int128
  • 法 4:根据多重组合数公式推导过程,答案可写为 i=1n(j=1i(dj1)di1),使用杨辉三角预处理组合数即可。

7 月 TG Day 15 真题

洛谷评价:T1 蓝、T2 绿、T3 蓝、T4 蓝。

A 以前做过,直接抄了。

B 时间复杂度错误的做法洛谷上过去了,XMOJ 机子太慢没卡过去。。。

A

是 CSP-S 2021 原题,直接贴洛谷链接:P7914 [CSP-S 2021] 括号序列

TODO:

B

是 CSP-S 2019 原题,直接贴洛谷链接:P5658 [CSP-S2019] 括号树

TODO:

C

是 CSP-S 2019 原题,直接贴洛谷链接:P5664 [CSP-S2019] Emiya 家今天的饭

TODO:

D

是 NOIP 2018 原题,直接贴洛谷链接:P5021 [NOIP2018 提高组] 赛道修建

TODO:

posted @   August_Light  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示