
【OJ】CodeChef
文章平均质量分 90
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【CodeChef】Lucas Theorem
【题目链接】点击打开链接【思路要点】考虑subtask1,我们很容易可以得到一个动态规划的解法。注意到行与行之间转移的卷积本质,我们可以用FFT快速计算出DP数组的某一行,可以通过subtask2。原题中N非常大,我们不可能求得DP数组的第N行。考虑多项式x(x+1)(x+2)(x+3)…(x+p-1),在模质数p意义下,应当等于x^p-x。因为我们打表发现这两个多项式拥有...原创 2018-07-01 21:10:54 · 473 阅读 · 0 评论 -
【CodeChef】Graph on a Table
【题目链接】点击打开链接【思路要点】注意到一步使得两维坐标均增大 222 或以上的走法一定是不优的,我们只需要考虑每一步某一维增量为 111 的情况。预处理 Li,j,Ui,jL_{i,j},U_{i,j}Li,j,Ui,j 分别表示最左侧的可以转移到 (i,j)(i,j)(i,j) 的位置和最上方的可以转移到 (i,j)(i,j)(i,j) 的位置,可以发现, Li,jL...原创 2019-04-18 16:01:57 · 277 阅读 · 0 评论 -
【CodeChef】Adjacent Leaves
【题目链接】点击打开链接【思路要点】首先考虑一种 O(N)O(N)O(N) 处理一个询问的方法,我们以 RRR 为根,进行 dfsdfsdfs 。我们称一个存在关键叶子的子树为“满的”,当且仅当该子树中叶子结点的数量等于关键叶子的数量,称一个子树为“不满的”,当且仅当该子树中存在关键叶子,并且它不是满的。若一个点 xxx 存在三个或以上不满的子树,那么显然我们不可能将其安排至...原创 2018-12-09 13:17:47 · 341 阅读 · 0 评论 -
【CodeChef】Imagine Polygons
【题目链接】点击打开链接【思路要点】首先显然的一点是当且仅当两个多边形在 xxx 轴上的跨度不一样,输出 −1-1−1 。考虑一个 xxx 轴上的坐标 iii ,在满足 x=ix=ix=i 的平面上的任意一点 (i,y,z)(i,y,z)(i,y,z) 能够被计入答案当且仅当 (i,y)(i,y)(i,y) 在 x−yx-yx−y 轴的投影多边形内, (i,z)(i,z)(i,...原创 2018-12-09 12:59:51 · 248 阅读 · 0 评论 -
【CodeChef】Xor Table
【题目链接】点击打开链接【思路要点】我们可以将 ci,jc_{i,j}ci,j 看做二分图的边集,找到图中每一个联通块,确定其中一个数便可以确定所有数,因此,问题等价于我们需要求解满足若干不等式 l≤x⊕val≤rl≤x\oplus val≤rl≤x⊕val≤r 的 xxx 的一组解或指出其无解。直接从高位向低位搜索即可,这部分的复杂度笔者尚不是很明确,可以肯定的是,它不会超...原创 2018-12-09 12:45:59 · 258 阅读 · 0 评论 -
【CodeChef】Adi and the Matrix
【题目链接】点击打开链接【思路要点】考虑用 BurnsideBurnsideBurnside 引理计数。不妨令 N≤MN≤MN≤M ,枚举 NNN 的整数拆分,在第二维上 dpdpdp 即可。具体来说,满足将 NNN 拆分为 N=∑aici (ai>ai−1)N=\sum a_ic_i\ (a_i>a_{i-1})N=∑aici&nb...原创 2018-12-09 11:38:01 · 353 阅读 · 0 评论 -
【CodeChef】Adi and the Tree
【题目链接】点击打开链接【思路要点】首先,一条边不会在一种方案中被计算 x (x>1)x\ (x>1)x (x>1) 次,否则我们可以构造出一种只计算这条边 x%2x\%2x%2 次的方案,方案会变优。考虑一条边何时会被计算,显然当其两侧的点数均为奇数时,这条边会被计算。由于题目保证了任意时刻总点数为偶数,我们只需要计算子...原创 2018-12-09 11:24:43 · 216 阅读 · 0 评论 -
【CodeChef】Suffix Palindromes
【题目链接】点击打开链接【思路要点】考虑计算 dpidp_idpi 表示长度为 iii 的,不含长度在 222 到 i−1i-1i−1 之间的回文前缀的回文串的个数,令 dp1=0dp_1=0dp1=0 。则答案 AnsAnsAns 满足 Ans=SN−∑i=2Ndpi∗SN−iAns=S^N-\sum_{i=2}^{N}dp_i*S^{N-i}Ans=SN−∑i=2Ndp...原创 2018-12-09 11:18:54 · 362 阅读 · 0 评论 -
【CodeChef】Painting Tree
【题目链接】点击打开链接【思路要点】我们发现直接解决问题难以入手。回忆期望的定义,有 E=∑i=1VP(x=V)∗V=∑i=1VP(x≥i)E=\sum_{i=1}^{V}P(x=V)*V=\sum_{i=1}^{V}P(x≥i)E=∑i=1VP(x=V)∗V=∑i=1VP(x≥i) 。记树上不同的路径数为 cntcntcnt ,注意到若操作步数确定为 iii ,那么 P...原创 2018-11-04 10:35:30 · 574 阅读 · 0 评论 -
【CodeChef】Strange Transform
【题目链接】点击打开链接【思路要点】若我们将每一位分开考虑,异或可以看做模 222 意义下的加法。因此,一个位置 fk,xf_{k,x}fk,x 的值可以看做从 (k,x)(k,x)(k,x) 出发,每次可以选择从 (x,y)(x,y)(x,y) 走到 (x−1,y),(x,y+1)(x-1,y),(x,y+1)(x−1,y),(x,y+1) ,最终停在 (0,x) ...原创 2018-11-04 10:23:01 · 328 阅读 · 0 评论 -
【CodeChef】October Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接**【BBRICKS】**Beautiful Bricks【思路要点】上下两个砖块中,至多有一个黑色。连续的一段存在黑色的行共有两种放置的方案。枚举有几段连续的存在黑色的行,用组合数计算答案。单组数据时间复杂度 O(K)O(K)O(K) 。【代码】#include<bits/stdc++.h>using namespace ...原创 2018-10-21 10:46:08 · 535 阅读 · 0 评论 -
【CodeChef】September Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接**【ANDSQR】**AND Square Subsegments【思路要点】离线询问,按左端点排序。枚举区间的左端点 lll ,区间 [l,i][l,i][l,i] 的 andandand 和至多变化 O(LogV)O(LogV)O(LogV) 次,二分找到分界点,并找到其中是完全平方数的。每一段 andandand 和相同的区间 [l,i][l...原创 2018-10-06 16:04:18 · 362 阅读 · 0 评论 -
【CodeChef】Far Graphs
【题目链接】点击打开链接【思路要点】可以发现,除了位于正中间的一点以外,剩余的点可以分成在正中间左侧的点和在正中间右侧的点,每一类点内部均没有边。因此,若不考虑最中间存在点的情况,给出的图应当为二分图。将所有点按照所在的部分为第一关键字,度数为第二关键字排序,左侧的点度数大的在前,右侧的点度数小的在前,即可确定所有点在数轴上的大小关系。此时,每一个右侧的点能够连向的左侧的点...原创 2019-04-18 16:02:05 · 283 阅读 · 0 评论