真题
文章平均质量分 73
yezzz.
这个作者很懒,什么都没留下…
展开
-
B - Chessboard
B - Chessboard分析:阅读理解题,组合数学,神仙思维" the shortest distance between any two blocks would remain unchanged after they were painted"主要是这句话,不能让任意两个访问过的格子的最短距离发生改变,想一下可以发现以下几条规则:首先,从始至终都是在同一个连通块,然后不断向外扩展到最后,画满的情况下,任意两点的最短路都是曼哈顿距离最后,结束的地方一定是四角之一为了满足原创 2022-03-16 20:58:46 · 556 阅读 · 0 评论 -
2021 ICPC 沈阳站 B. Bitwise Exclusive-OR Sequence(亦或,位运算,菊花图)
2021 ICPC 沈阳站B. Bitwise Exclusive-OR Sequence分析:图由链和环构成考虑环: 从一个点开始到这个点结束的亦或和为0(因为每个点权都用了两次),就是说:若出现环,且环的亦或和不为0,就输出 “-1”考虑链:从链的一端出发 设 (a1,a2,...,an)(a_1,a_2,...,a_n)(a1,a2,...,an) 为链上的点权a1∧a2=w1a_1\land a_2=w_1a1∧a2=w1a2∧a3=w2a_2\land a_3原创 2021-11-23 19:50:18 · 1127 阅读 · 0 评论 -
Free Figurines (容斥,思维,链上操作)
Free Figurines分析:这题是个套娃可以转成一个含有多条链的有向图从新图到旧图,让我们求最少的操作次数考虑不用改变的地方:对于每一条链,从旧链转换到新链,首先它们的起点肯定还要一样(因为这是个套娃,最下面的才可以不用变,上面的要一个一个的拿出来)然后就可以从起点往后找,直到两个链的元素不相同思路转换:若直接考虑去一个一个的加操作数,会很复杂,考虑用容斥最劣的方法就是先将旧图的所有边断开,再将新图的所有边连上再减去所有共有的边,就是 ansansans原创 2021-10-26 22:14:47 · 100 阅读 · 0 评论 -
2021 ICPC 江西省 A. Mio visits ACGN Exhibition(DP,大离谱,经验分享)
A. Mio visits ACGN Exhibition分析:DP +DP\ +DP + 降维优化f[i][j][x][y]f[i][j][x][y]f[i][j][x][y] 表示从 (1,1)(1,1)(1,1) 走到 (i,j)(i,j)(i,j),经过 xxx 个 000 和 yyy 个 111 的方案数因为非 000 即 111 (y=i+j−1−x)(y=i+j-1-x)(y=i+j−1−x),故第四维可以直接去掉然后就可以得到:f[i][j][x]={原创 2021-10-25 21:05:31 · 792 阅读 · 7 评论 -
2021 ICPC 江西省 H. Hearthstone So Easy 详解(博弈论,分类讨论,推式子,逆推)
H. Hearthstone So Easy分析:博弈题(不知道算啥博弈)可以发现:不管先后手如何操作,一轮回和结束之后(两者都活着)两者的血量都是一样的考虑先手如何才能取胜:先手必须要尽快扣死后手,不然拖到下一轮,先手抽卡阶段就有可能被扣死故,先手最优解,会一直选择扣后手的血考虑后手如何才能取胜:后手不可能直接扣死先手,若存在这种情况,先手能更先扣死后手,故矛盾因此,后手只能跟先手耗时间,等着某一回合结束的下一回合,先手抽卡阶段直接被扣死故,后手只会在倒数第原创 2021-10-24 21:03:42 · 841 阅读 · 0 评论 -
2021 ICPC 江西省 J. LRU (二分答案,stl大杂烩,map,set,queue)
J. LRU分析:二分答案 +++ mapmapmap andandand setsetset andandand queuequeuequeue 乱搞让我们求最小的满足条件的缓存容积(为了方便,下文用长度表示),可以想到用二分主要的麻烦点在于判断当前二分的长度 (d)(d)(d) 是否成立要维护长度始终小于等于 ddd,然后 ddd 个元素又互不相同,可以用 set+queueset+queueset+queue 来维护:最后一个难想的点就是结束出队的条件(详见代码)为什么想原创 2021-10-23 23:14:35 · 773 阅读 · 1 评论 -
2021 CCPC 网络选拔赛(重赛)
2021 CCPC 网络选拔赛(重赛)hdu 7127 Kanade Doesn’t Want to Learn CG我是瞎子,全部理解成不包括终点,一直 WAWAWA#include <bits/stdc++.h>using namespace std;const int N=1e5+5;signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T; cin.原创 2021-10-12 13:05:15 · 489 阅读 · 0 评论 -
2020ICPC 江西省大学生程序设计竞赛
2020ICPC 江西省大学生程序设计竞赛 A Simple Math Problem分析:莫比乌斯函数反演∑i=1n∑j=1i[gcd(i,j)==1]f(j)=∑j=1n∑i=jnf(j)∑d∣(i,j)u(d)=∑d=1n∑j=1[nd]∑i=j[nd]f(j∗d)∗u[d]=∑d=1nu(d)∑j=1[nd]f(j∗d)∑i=j[nd]1=∑d=1nu(d)∑j=1[nd]f(j∗d)∗([nd]−j+1)\begin{aligned}&\sum_{i=1}^n\sum_{j原创 2021-10-18 19:35:45 · 371 阅读 · 0 评论 -
Color Sequence (前缀亦或求状态,状态前缀和)
Color Sequence分析:求满足条件的连续子序列的数量条件:子序列每种颜色出现的数量都是偶数再看颜色种类数 <=21<=21<=21会想到要去用到 DPDPDP,考虑状态的转移,下面只考虑一种颜色来分析:f[i][j]f[i][j]f[i][j] 表示前j个颜色,第 iii 种颜色的贡献状态要求是偶数,f[i][j]f[i][j]f[i][j] 的贡献就等于前 jjj 个颜色 c[i]c[i]c[i] 出现的次数 /2/2/2(奇数只跟奇数,偶数只跟偶数)原创 2021-10-18 18:47:18 · 357 阅读 · 0 评论 -
A Simple Math Problem (莫比乌斯函数反演)
A Simple Math Problem分析:莫比乌斯函数反演∑i=1n∑j=1i[gcd(i,j)==1]f(j)=∑j=1n∑i=jnf(j)∑d∣(i,j)u(d)=∑d=1n∑j=1[nd]∑i=j[nd]f(j∗d)∗u[d]=∑d=1nu(d)∑j=1[nd]f(j∗d)∑i=j[nd]1=∑d=1nu(d)∑j=1[nd]f(j∗d)∗([nd]−j+1)\begin{aligned}&\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)==1]f(j).原创 2021-10-18 18:00:26 · 132 阅读 · 0 评论 -
hdu 7130 Monopoly (多条件排序,分类讨论,map嵌套vector,排序小技巧,STL)
hdu 7130 Monopoly分析:方法一:多条件排序 +++ 多条件二分方法二:用 mapmapmap 嵌套 vectorvectorvector 来实现方法一将 a[i]a[i]a[i] 前缀和得 s[i]s[i]s[i],设 d=s[n]d=s[n]d=s[n]即求是否存在 s[i]s[i]s[i],使得:x=s[i]+kd (k>=0)x=s[i]+kd\ (k>=0)x=s[i]+kd (k>=0)根据题目要求,ans=kn+ians=原创 2021-10-13 21:02:53 · 182 阅读 · 0 评论 -
hdu 7136 Jumping Monkey (并查集,重构树)
hdu 7136 Jumping Monkey分析:并查集+重构树可以想到 BFSBFSBFS 去遍历,每次从当前权值最大点出发跑一遍 BFSBFSBFS,经过的点的 dep++dep++dep++然后,便将权值最大点去掉,继续重复上一个操作但是,这样显然会 TTT(代码见下文)考虑如何优化?(从比赛开始到结束,也没想出怎么优化)nnn 遍 BFSBFSBFS ,过程有很多步是重复的如果这棵树以权值最大点为根,从上到下的权值是递减的,那答案就是每个节点的深度(这就很 niceni原创 2021-10-12 15:52:36 · 391 阅读 · 0 评论 -
hdu 7131 Nun Heh Heh Aaaaaaaaaaa (字符串DP,线性DP,后缀和)
hdu 7131 Nun Heh Heh Aaaaaaaaaaa分析:线性DP+DP +DP+ 后缀和后缀和维护 aaa 的数量,假设 kkk 个 aaa 的任意选择,即:∑i=1kCki=2k−1\sum_{i=1}^{k}C_k^i=2^k-1∑i=1kCki=2k−1维护一定顺序出现的一串序列,典型的线性DPDPDPdp[i][j]dp[i][j]dp[i][j] 表示前 jjj 位匹配到第 iii 个前缀的方案数若当前位为要匹配的前缀:dp[i][j]=dp[i][j−1原创 2021-10-12 13:22:58 · 154 阅读 · 0 评论