2021.03.30【2021省赛】模拟 比赛总结

地址: https://gmoj.net/senior/#contest/home/3350

T1: 神奇纸牌(uno)

T2: 凌乱平衡树 (treap)

T3: 打扫笛卡尔 (cartesian)

总结

这次比赛打挂了,只有 151515 分。

读完题后,发现好像只能做 T1T1T1 :因为太久没有打过 SplaySplaySplay 了, T2T2T2 的 RotateRotateRotate 可能要回忆好一会儿;而 T3T3T3 的 笛卡尔树 我没打过。

转化一下 T1T1T1 :有一个由 444 条横线, nnn 条竖线构成的网格图。你可以在 4n4n4n 个交点中任意选,对于选出的任意两个点,如果它们在同一条横线或同一条竖线上,那么它们之间连一条边。求让选出来的点形成一个连通图的方案。

因为颜色数很少,可以考虑状压。

设 fi,Sf_{i,S}fi,S​ 表示已经完成了前 iii 条竖线的选点,所选点所在的横线并集为 SSS ,且满足这些点形成一个连通图的方案。

当时我写的状态转移方程是
fi,S=2fi−1,S+∑j∈Sfi,S−{j}+∑T⫋S,T≠∅fi−1,T⋅fi−1,S−T⋅(2∣T∣−1)(2∣S−T∣−1)f_{i,S}=2f_{i-1,S}+\sum_{j\in S}f_{i,S-\{j\}} + \sum_{T\subsetneqq S,T\neq \emptyset} f_{i-1,T}\cdot f_{i-1,S-T}\cdot (2^{|T|}-1)(2^{|S-T|}-1) fi,S​=2fi−1,S​+j∈S∑​fi,S−{j}​+T⫋S,T​=∅∑​fi−1,T​⋅fi−1,S−T​⋅(2∣T∣−1)(2∣S−T∣−1)
显然严重算重了。但是当我意识到这一点后已经十点多了,加上不知道怎么改进,就胡乱写了个暴力水他个 151515 分。

接着就去打 T2T2T2 了,发现暴力模拟即可 202020 分,接着只维护左边那棵 TreapTreapTreap 的右链即可再拿 202020 分。

但是打起来才发现暴力模拟的 202020 分好难拿啊!!!根本没有时间拿另外 202020 分。

最后调了几下没调出来,交上去 000 分了。赛后发现原来是两个愚蠢至极的错误:

  1. 没有预处理 sizsizsiz 就开始处理询问了,这样合并的时候自然就会错掉;
  2. rotaterotaterotate 后更新节点 sizsizsiz 时,先更新了新父亲,再更新原父亲。

T3T3T3 没有时间打。

这次失误主要是我组合数学、DP的基础比较薄弱,某些算法太久没用以至于遗忘导致的。


题解

T1 uno

状压DP

设 fi,Sf_{i,S}fi,S​ 表示已经完成了前 iii 条竖线中的选点,横线选择状态的并集及其连通状态为 SSS 的方案。

通过搜索可以发现 SSS 大小是 525252 。

接着 矩阵乘法 就可以了。

容斥

考虑枚举每一种数字选择的颜色状态(如选择第 1,31,31,3 种颜色就是一种状态,共有 242^424 种颜色状态)。发现对于一种颜色状态,我们只关心它是否出现过,而不用关心它究竟是被哪一种数字选择的、出现过几次。

因此可以枚举这些颜色状态的出现状态(如选择“选择第 1,31,31,3 种颜色”、“选择第 1,21,21,2 种颜色”和“选择第 2,42,42,4 种颜色”三种颜色状态就形成了一种出现状态,其实就是看某个状态是否出现过,共有 2242^{2^4}224 种出现状态),然后判断它们是否合法,如果合法,计算方案即可。

判断一种出现状态是否合法用 并查集 就可以了。具体来说,如果“选择第 1,31,31,3 种颜色”这种颜色状态出现了,就把 111 和 333 这两种颜色并起来(看一下上面的转化题意就很容易理解)。

形成一种包含 mmm 种颜色状态的出现状态等价于:把 nnn 个互不相同的小球放进 mmm 个互不相同的盒子里,要求满足每个盒子都不为空,求放置小球的方案数。直接 容斥 就好了,方案数为
∑i=0m(−1)m−i(mi)in\sum_{i=0}^m (-1)^{m-i}\binom{m}{i} i^n i=0∑m​(−1)m−i(im​)in
时间复杂度 O(224+162log⁡2n)O\left(2^{2^4}+16^2 \log_2 n\right)O(224+162log2​n) 。

T2 treap

https://blog.csdn.net/huangzihaoal/article/details/115346907

T3 cartesian

题解说这题的定位是 较难的计数题

但是这题还可以 OEISOEISOEIS 出来(话说我们比赛是不能上 OEISOEISOEIS 的对吧

先暴力跑出 n∈[1,7]∩Zn\in [1,7]\cap Zn∈[1,7]∩Z 的答案: 1,4,17,85,499,3388,262001,4,17,85,499,3388,262001,4,17,85,499,3388,26200 。然后 OEISOEISOEIS 一波:

如果写成 无符号第一类斯特林数 的形式,那就是
ansn=[n+12]+[n+13]ans_n= {n+1\brack 2}+{n+1\brack 3} ansn​=[2n+1​]+[3n+1​]
时间复杂度 O(n)O(n)O(n) 。


代码

T1

#include<cstdio>
using namespace std;
typedef unsigned int uint;
typedef long long ll;
#define fo(i,l,r) for(i=l;i<=r;++i)
uint P,c[25][25],ans[17];
int f[5];bool b[5];
inline uint add(uint x,uint y){x+=y;return x>=P?x-P:x;}
inline uint pow(uint x,ll y)
{uint s=1;while(y){if(y&1) s=1LL*s*x%P;x=1LL*x*x%P,y>>=1;}return s;
}
int getf(int k){return f[k]!=k?f[k]=getf(f[k]):k;}
int main()
{freopen("uno.in","r",stdin);freopen("uno.out","w",stdout);int i,j,s,t,m,las;ll n;uint sum;fo(i,0,16){c[i][i]=c[i][0]=1;for(j=1;j<i;++j) c[i][j]=add(c[i-1][j],c[i-1][j-1]);}scanf("%lld%u",&n,&P);fo(i,1,16) fo(j,0,i)ans[i]=add(ans[i],i-j&1?P-1LL*pow(j,n)*c[i][j]%P:1LL*pow(j,n)*c[i][j]%P);
//  fo(i,1,16) printf("%d\t%d\n",i,ans[i]);fo(s,1,65535){m=0;fo(i,1,4) f[i]=i,b[i]=0;fo(t,0,15) if(s&1<<t){++m,las=0;fo(i,1,4) if(t&1<<i-1){if(las&&getf(las)!=getf(i)) f[f[las]]=f[i];las=i,b[i]=1;}}if(m>n) continue;las=0;fo(i,1,4) if(b[i]){if(las&&getf(las)!=getf(i)) break;las=i;}if(i>4) sum=add(sum,ans[m]);}printf("%u\n",sum);return 0;
}

T2

https://blog.csdn.net/huangzihaoal/article/details/115346907#t2

T3

#include<cstdio>
using namespace std;
typedef unsigned int uint;
#define fo(i,l,r) for(i=l;i<=r;++i)
uint s[4],P;
inline uint add(uint x,uint y){x+=y;return x>=P?x-P:x;}
int main()
{freopen("cartesian.in","r",stdin);freopen("cartesian.out","w",stdout);register int i;int n;scanf("%d%u",&n,&P);s[0]=1;fo(i,1,n+1){s[3]=(s[2]+1LL*(i-1)*s[3])%P,s[2]=(s[1]+1LL*(i-1)*s[2])%P,s[1]=(s[0]+1LL*(i-1)*s[1])%P,s[0]=0;}printf("%u\n",add(s[2],s[3]));return 0;
}

2021.03.30【2021省赛】模拟 比赛总结相关推荐

  1. JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树(平衡树单旋+权值线段树)

    JZOJ 7036. 2021.03.30[2021省赛模拟]凌乱平衡树 题目大意 给出两棵Treap,大小分别为 n , m n,m n,m,每个点的 p r i o r i t y priorit ...

  2. 2020年第四届计算机检测维修与数据恢复国赛模拟比赛

    第四届计算机检测维修与数据恢复模拟比赛在我司实训车间举行,本次模拟比赛按照 2019-2020年度广东省职业院校技能大赛(中职组)"计算机检测维修与数据恢复"项目样题任务书 进行出 ...

  3. 7035. 2021.03.30【2021省赛模拟】神奇纸牌(uno)题解

    再度死在了这种排列组合题的大刀下 一个显然的结论:一套UNO牌在复制条件下可以打完的条件当且仅当同点数同颜色的牌连边后形成连通块 这道题只有4种颜色,所以会有两种做法 1.列出DP表达式后矩阵快速幂转 ...

  4. 2021年团体程序设计天梯赛-模拟赛

    文章目录 L1-1 宇宙无敌大招呼 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1-2 考试周 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1- ...

  5. 《惢客创业日记》2021.03.30(周二)好朋友不挡财路

    今天一上班,做视觉的李白问我:"资金找的怎么样了?"我给他说,目前还没有着落,把上次去南方见投资机构的事和这两天找人合作的事也都告诉了他.我问他新工作开始找了吗?他说还没有开始投简 ...

  6. 2021/03/09~2021/08/19 统计

    1.流程类 1.上架流程: 确定包名(有申请第三方的app_name参数需要统一).创建项目: 格式化文件路径及命名:icon.svg/png(应用图标)像素文件夹.string(应用名称/布局链接) ...

  7. 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值,时间序列,微分方程建模)

    本系列赛题.数据获取: 2021年暑假数学建模模拟赛(赛题+数据+分析) 不直接提供论文等资料,分析已经很详细了 整理不易,欢迎点赞+关注+收藏 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值 ...

  8. 2021年10月8日模拟赛(保龄奇遇记)

    本场考试考的很撇,值得反思,暴露出很多问题,望及时的拨乱反正,改掉操之过急,心态不稳定的缺点 2021年10月8日模拟赛(保龄奇遇记) 太菜了 T1 话中有话 有些词是多义词.这就导致同一句话可能有多 ...

  9. 2021年CCF CCSP全国赛 赛后感想 心得 总结

    看到一句话很顺口, "北有清北,南有深大". 这几天心态跌宕起伏,感谢老师的帮助以及鼓励,很高兴能够拿到资格参加CCSP全国赛,感觉像是国内算法领域大学间的诸神之战, 比赛时间长达 ...

最新文章

  1. 这个神奇的网站提供各种图的代码供您参考!
  2. docker 容器环境 检测方法
  3. python pip国内镜像
  4. thymeleaf th:if else
  5. Firefox年内将默认启用AV1解码
  6. LoRa是怎样实现定位的
  7. mysql alter怎么用,mysql alter话语用法
  8. LeetCode 1035. 不相交的线(最长公共子序列DP)
  9. request获取url的参数编码问题
  10. 揭秘ASP.NET 2.0的Eval方法
  11. 【白皮书分享】车企数据资产及业务价值实现白皮书.pdf(附下载链接)
  12. 剑指offer-从尾到头打印链表
  13. 获取文件哈希值_系统装机|两款最经典的文件校验工具,检查镜像文件的完整性。...
  14. 如何破解“仅三天可见”的朋友圈?
  15. webService接口调用
  16. android圆形头像边框,利用Android中BitmapShader制作自带边框的圆形头像
  17. python中plt.hist_关于python中plt.hist参数的使用详解
  18. Matlab利用gca设置图像属性(线型,字号,颜色)
  19. 如何将多个excel表格合并成一个_如何把两个excel表合并成一个
  20. JavaWeb-简析MVC三层架构

热门文章

  1. linux查看用户家目录下的隐藏文件,linux中查看目录下隐藏文件方式?
  2. 计算机毕业设计 SSM养老院管理系统 智慧养老院管理系统 养老院信息管理系统Java Vue MySQL数据库 远程调试 代码讲解
  3. 怎么使用python实现大数据应用
  4. css自定义横向滚动条样式,css滚动条样式自定义
  5. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第一章 配置python环境
  6. c语言+结构体指针初始化,c语言结构体指针初始化===
  7. Log4j2发送邮件通知
  8. 嵌入式驱动移植之触摸驱动初识
  9. 有害气体在线监测数采仪
  10. Amazon Rekognition - 图像审核