首页 > 其他分享 >CSP-S模拟赛20241004

CSP-S模拟赛20241004

时间:2024-10-04 21:22:23浏览次数:8  
标签:20241004 钦定 元素 个数 模拟 可以 考虑 CSP dp

A

你考虑 可以把这个数组当中的每个数表示成另一种形式:\(a_i = k_i\times x+b\)(其中\(x\)是模数,\(b\)为余数)。

对于求两个数是否对于某个余数同余,显然你要判断他们两个的差,即\(a_i-a_j\),那么我们用上面那种形式表示其实就是\(a_i-a_j = (k_i-k_j) \times x\),所以你要判断整个数组的话只需要对每两个数的差求一个\(gcd\),如果这个\(gcd\)是\(1\),显然,他们所有数不能对一个数同余,故选择的模数直接用\(2\)就可以让模出来最少的余数种类---仅有\(2\)种,否则的话,就可以通过余某个数把他们变成同余的,故答案就是\(1\)。

Code

B

场切的第一个第二题哈哈哈哈,首先你考虑这个如果做数学的话没法推到出来一个大的综合式子(别问为什么,两个小时没做出来)。
我们考虑做\(dp\)计数,设定\(dp_{i,j}\)表示当前选到了第\(i\)个数,当前的和为\(j\)。
那么考虑转移,其实挺好整,你考虑如果这一个选\(1\),那么他能从\(dp_{i-1,j-1}\)转移过来。
如果选了\(j\)这个和,那么你考虑其实\(j/2\)的也能选到,因为你可以把这个序列当中的所有数都除以\(2\),所以也可以转移。

注意,建议你正着枚举,也就是:

\[dp_{i,j} = dp_{i-1,j-1}+dp_{i,j*2} \]

那么这个时候,你对于\(j\)的枚举顺序应该是从大到小的,因为你在计算\(j\)的时候会找到\(j*2\)对吧,所以在第二维计算的时候,他是具有依赖性的哈哈哈。
记得判断\(j*2\)的范围一定是 \(\le i\)的。

D

考虑容斥把问题转化。
设定\(f_i\)表示至少钦定了\(i\)个数的出现次数不大于\(1\),\(g_i\)表示你恰好钦定了\(i\)个数的出现次数不大于\(1\)。
得到公式:

\[f_i = \sum_{i=0}^{n}C_{j}^{i} g_j \]

反演得到:

\[g_i = \sum_{i=0}^{n}(-1)^{j-i}C_{j}^{i}f_j \]

解释一下这里为什么有组合数奥,显然,一开始你钦定了\(i\)个数,对于你目前找到的这\(j\)个数,有\(C_{j}^{i}\)种选法。

但是,你\(f_i\)的表示还需要有一个\(C_{n}^{i}\),这是为什么呢?因为你在求这个\(f_i\)时一开始点的选择有\(C_{n}^{i}\)种选法,当你钦定了这\(i\)个数的时候,你还有\(C_{j}^{i}\)种可以移动的方法,这样可以理解吧。

那么你发现,答案其实就是\(g_0\),显然啊!

对于钦定的\(i\)个元素,可以分为两类:出现一次的和没有出现的。对于没有出现过的元素可以不考虑,对于只出现一次的元素,设其个数为\(j\),可以考虑将其划分为若干集合,然后再与未钦定的元素进行搭配。将相互区分的\(n\)个元素划分为\(k\)个不互相区分的非空集合方案数为\(\displaystyle {k \brace n}\),

标签:20241004,钦定,元素,个数,模拟,可以,考虑,CSP,dp
From: https://www.cnblogs.com/grz0306/p/18447309

相关文章

  • 20241004-顺路
    约莫六点一刻时我和lzm吃完晚饭从食堂出来,我想回机房,他说想去找zyx,我惊讶,并说这又不顺路干嘛去找?但是他执意要找,并表示「在我心里是顺路的」,我便和他一起顺路。来到24班后门门口,lzm探头张望,又马上折回来小声对我说些话,我没听清,只听到什么「跟zyx大声说lzm来找她了」,我......
  • CSP-JS多省分数线分析!复赛如何准备?(附复赛流程视频)
    截止目前已经有多个省份CSP-JS的分数线已经出了,很多省份比去年提升了不少,像河南等地都提升了20多分,不过也有一些省份,天津比去年提升分数却不是很多。还有很多省份分数线没出,各位家长想要预估是否能够晋级的,以下是已出分数线省份表格统计:目前已出分数线省份省份入门组......
  • [CSP-J 2023] 小苹果(apple)-----------用数组
    1#include<iostream>2usingnamespacestd;3intmain(){4intn,m;5cin>>n>>m;6intg=n,t=0,li,s[n+1],b;7for(inti=1;i<=n;i++){8s[i]=i;9}10while(g){11t+=1,b=0,li=0,g-=(g+......
  • CSP小苹果详细解法
    #include<bits/stdc++.h>usingnamespacestd;intmain(){intn,ant=0,t,j;cin>>n;cout<<"小苞的桌上一共放了"<<n<<"个苹果。"<<endl;inta[n+5],b[n+5];for(inti=1;i<=n;i++){a[i......
  • 信息学奥赛复赛复习11-CSP-J2020-04方格取数-动态规划、斐波那契数列、最优子结构、重
    PDF文档公众号回复关键字:202410041P7074[CSP-J2020]方格取数[题目描述]设有n×m的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格,也不能走出边界。小熊会取走所有经过的方格中......
  • 【C++】 string类的模拟实现
    目录string类各函数接口总览构造函数拷贝构造函数赋值运行符重载函数析构函数迭代器相关函数beginend容量和大小相关的函数sizecapacityresizereserveempty修改字符串相关函数push_backappendoperator+=inserteraseclearswapc_str访问字符串相关函数o......
  • 冲刺CSP联训模拟2
    冲刺CSP联训模拟2过T2了,赢了T3T4暴力没写满,输了A挤压我是唐诗老哥一个半小时才过T1发现要求的是\(E(s^2)\),因为有个异或,所以直接考虑拆贡献到每一位\[E(s^2)=E(\sums_i\sums_j)=\sumE(s_is_j)\]所以直接考虑后面那个咋做,就是\(i,j\)位同时是一的时候贡献\(2^......
  • 20241003 模拟赛
    这场...打得还行吧。(至少没有爆零A.旋律的总数难度:橙签到题。只要第一个都选\(1\),就能保证不同。答案为\(m^{n-1}\)。#include<bits/stdc++.h>#definelllonglong#definemod1000000007usingnamespacestd;intT;lln,m;llquickpow(lla,llb){llre......
  • 10.2 代码源 2024 CSP-S 模拟赛 Day 7
    省流:\(55+5+0+10=70\)简称:唐诗T1第一眼发现在二进制下加法不能进位,然后码了个DP就放那了……DP代码:intS=(1<<14)|1;fd(i,0,r[1])f[1][i]=1;fd(i,2,n){fd(j,0,S){f[i][j]=f[i-1][j];for(ints=j;s;s=(s-1)&j){(f......
  • 10.4 模拟赛(2025 炼石计划 NOIP 模拟赛 #7)
    2025--炼石计划--9月25日--NOIP模拟赛#7【订正】-比赛-梦熊联盟(mna.wang)复盘赢麻了。浏览题。T1没理解“中间节点”是啥意思,样例太大先不模拟了。T2什么东西,密铺?T3好像看懂了题。脑子中瞬间有一个\(n^3\)DP,发现\(n\le200\)感觉切了。但其实DP假的很......