首页 > 其他分享 >做题记录整理dp12 P7961 [NOIP2021] 数列(2022/9/26)

做题记录整理dp12 P7961 [NOIP2021] 数列(2022/9/26)

时间:2022-09-26 21:56:10浏览次数:93  
标签:md P7961 26 pf 2022 for1 NOIP2021 dp

P7961 [NOIP2021] 数列
当时在考场上对于拿部分分这个感念不是很清晰,所以当时连暴力分都没拿。。。

事实上这题在看了题解之后还是有很多地方没搞明白,比如最后统计答案,为什么从0开始

不过可以学习到组合数的预处理

等之后再把重新这题做一遍(当然,考场上肯定做不出来)

#include<bits/stdc++.h>
#define for1(i,a,b) for(int i = a;i<=b;i++)
#define ll long long
#define mp(a,b) make_pair(a,b)
using namespace std;
ll ans, a[105], dp[105][35][35][16], pf[105][35];
int n,m,K;
ll c[35][35];
const ll md= 998244353;
void yu() 
{
	for1(i,0,30)c[i][0]=1;
	for1(i,1,30)
		for1(j,1,i)
		    c[i][j]=(c[i-1][j]+c[i-1][j-1])%md;
}

int cl(int x)
{
	int cnt=0;
	while(x)
	{
	    cnt+=x&1;
	    x>>=1;
	}
	return cnt;
}

int main()
{
	yu();
	scanf("%d%d%d",&n,&m,&K);
	for1(i,0,m)
	{
		scanf("%lld",&a[i]);
		pf[i][0]=1;
		for1(j,1,n) pf[i][j]=pf[i][j-1]*a[i]%md;
	}
	dp[0][0][0][0]=1;
	for1(i,0,m)//前i位 
		for1(j,0,n)//确定了j个 
			for1(k,0,K)//有k个1 
				for1(p,0,j>>1)//下一位的进位 
					for1(t,0,n-j)//这一a中有t个i 
					    dp[i+1][j+t][k+(t+p&1)][t+p>>1]=
						(dp[i+1][j+t][k+(t+p&1)][t+p>>1]+dp[i][j][k][p]*pf[i][t]%md*c[n-j][t]%md)%md;
	for1(k,0,K)
    	for1(p,0,n>>1)
			if(k+cl(p)<=K) 
			    ans=(ans+dp[m+1][n][k][p])%md;
	printf("%lld",ans);
	return 0;
}

标签:md,P7961,26,pf,2022,for1,NOIP2021,dp
From: https://www.cnblogs.com/yyx525jia/p/16732642.html

相关文章

  • Test 2022.09.26
    今天是水题专场T1扩散感觉这种要么就是二分答案网络流,要么就是最小生成树,(随便口胡的),树德保留节目了属于是。分析简简单单一眼最小生成树(又是),边权就是两个点之间存在公......
  • JavaWeb--Mybatis--2022年9月25日
    第一节  Mybatis概述1.Mybatis概念tips:持久层是什么:负责将数据保存到数据库的那一层代码,以后开发我们会将操作数据库的......
  • 9.26水题大赏
    2022-9-26T1扩散明显可以二分答案,也可以用最小生成树去做。考试时写的最小生成树,每两个点连一条边权为这两个点的曼哈顿距离。每次找最小的距离,\(\div2+1\)后更新\(ans......
  • 42ed 2022/9/10&2021/9/17 纪中CSP.S组第一轮训练
    第一次(2022/9/10:陕西2020)得分70,不高不低,略有不足,因为还有一些题目的分能拿但没拿到,考试共进行了2h,原本应该是4h,仍然都能做完,还进行了两次检查首先是在选择题上,一道栽在......
  • 41st 2022/9/2 CSP前思想准备
    面临虽说上次过了第一轮,但是仍然很慌因为上次只是第一次过了第一轮,虽然有些把握,但却不是百分百怎么说呢,我不太相信自己第二轮会多烂,但是如果烂在了第一轮,那就真的是哑巴......
  • 40th 2022/8/17 模拟赛总结29
    这次能接受,因为T1是唯一能简单拿分的,但是我对状压DP的这一类,反而是最板子的题目不熟悉状压DP,需复习并进行简单提升其实今天是看出来了是状压,但就是打不出来,一直算空间时......
  • 2022icpc网络赛 A题B题
    AYetAnotherRemainder费马小定理\(10^{p-1}\%p==1\)考虑第\(p-1\)行字符串为\(a_1a_2a_3a_4a_5a_6\)假设当前模数p为3那考虑第2行然后第一个数是\(a_1+a_3+a_......
  • 38th 2022/8/13 模拟赛总结27
    这次哈!前一天我就不该喝咖啡的!但后悔也来不及了!!!睡很晚,这次再次让我体会到了睡眠的重要性痛苦,比赛时有力没法使,就很好,甚至还去拉虚脱了因为既着凉,又没精神,直接崩溃然后......
  • 37th 2022/8/12 模拟赛总结26
    这次真不可理喻这次T1是差分约束,这次,得完全弄懂T1,因为之前考过差分约束,但一直都不会,改了题后却没有印象,这次做出总结:就是一个将输入改为一条形同松弛原理的式子,如:\(X_i-X......
  • 39th 2022/8/16 模拟赛总结28
    这次又有人在D,真的烦,随便AK没什么意思的,尤其是赛后当然,不快归于耳后,先看自己这次不是很好,T2离正解只有1微米,DP的顺序错误,追悔莫及的是还在发呆,浪费了宝贵的时间然后......