自己看吧:

爆搜代码:

//春水初涨-春林初盛-春风十里-不如你
//----hzwer
// 这是啥子题,读不懂--
//题意有问题 --
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
#include<map>
#define mod 998244353
#define N 100000
using namespace std;
int n,m,s,y[N],sum[N],sumy;
int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
struct yelir
{
int pos,sum;
bool operator < (const yelir &a) const
{
if(pos==a.pos) return sum < a.sum;
return pos < a.pos;
}
};
map< yelir , int >mp;
int dfs(int pos,int sum)
{
yelir x = yelir{ pos,sum };
if(pos==n+1)
{
if(sum % m==s)return 1;
return 0;
}
if(mp.find(x) != mp.end() )
{
return mp[x];
}
int ans=0;
for(int i=0;i<=y[pos];++i)
{
ans+=dfs(pos+1,sum+i);
ans%=mod;
}
mp[x]=ans;
return ans;
}
int main()
{
#ifdef yilnr
#else
freopen("restrict.in","r",stdin);
freopen("restrict.out","w",stdout);
#endif
n=read();s=read();m=read();
for(int i=1;i<=n;++i)y[i]=read();
printf("%d",dfs(0,0));
fclose(stdin);fclose(stdout);
return 0;
}
/*
5 145 100000
49 49 48 48 48
*/

AC代码:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#define mod 998244353
#define int long long
#define N 5000008
using namespace std;
int s, m, n, ans, sum, cnt, f, tmp,M;
int y[100005], c =1e9,jie[N],inv[N];
int invjc[N], jc[N];
int power(int x, int y)
{
int res = 1;
for(; y; y >>= 1, x = x %mod* x %mod)
if(y & 1)
res = res %mod* x%mod;
return res%mod;
}
void init()
{
jie[0] = jie[1] = inv[0] = inv[1] = 1;
for(int i = 2;i <= 6000000;i ++)jie[i] = jie[i-1] * i % mod;
inv[6000000] = power(jie[M],mod-2);
for(int i = 60000000 - 1;i >= 2;i --)inv[i] = inv[i+1] * (i + 1) % mod;
}
int C (int n,int m)
{
if(n < 0 || m < 0 || n<m) return 0;
return jie[n] * inv[m] % mod * inv[n-m] % mod;
}
signed main()
{
#ifdef yilnr
#else
freopen("restrict.in","r",stdin);
freopen("restrict.out","w",stdout);
#endif
scanf("%lld%lld%lld",&n, &s, &M);
for(int i = 1; i <= n; i++)
{
scanf("%lld",&y[i]);
sum+=y[i];
c = min(c, y[i]);
}
int yi=0;
init();
for(int i=1;i<=n;i++) m+=(y[i]==c+1);
for(int k=s;k<=sum;k+=M)
{
for(int i=0;i<=n;i++)
{
int vis=0;
for(int j=0;j<=m;j++)
{
vis+= C( k-j-i*(c+1)+n-1 , n-1)%mod * C( m , j ) %mod * C( n-m , i-j)%mod;
vis%=mod;
}
if(i & 1) ans=(ans+mod-vis)%mod;
else ans=(ans+vis)%mod;
}
}
printf("%lld\n",ans);
return 0;
}
/*
5 145 100000
49 49 48 48 48
*/

----WFX

【csp模拟赛5】限制 (restrict.cpp)--数学的更多相关文章

  1. 【CSP模拟赛】坏天平(数学&思维)

    蹭兄弟学校的题目做还不用自己出题的感觉是真的爽 题目描述 nodgd有一架快要坏掉的天平,这架天平右边的支架有问题,如果右边的总重量比左边多太多,天平就彻底坏掉了.现在nodgd手上有n种砝码,质量分 ...

  2. CSP模拟赛游记

    时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...

  3. 【csp模拟赛4】 珠江夜游 (cruise.cpp)-二分,贪心

    Problem 1 珠江夜游 (cruise.cpp) [题目描述] 小 Z 放假后难得来一趟广州游玩,当然要吃遍广州各路美食小吃然后再 到珠江新城看看远近闻名的小蛮腰啦!可当小 Z 一路吃吃吃以后, ...

  4. 【csp模拟赛4】基站建设 (station.cpp)

    [题目描述] 小 Z 的爸爸是一位通信工程师,他所在的通信公司最近接到了一个新的通 信工程建设任务,他们需要在 C 城建设一批新的基站. C 城的城市规划做得非常好,整个城市被规整地划分为 8 行 8 ...

  5. 【CSP模拟赛】Confess(数学 玄学)

    题目描述 小w隐藏的心绪已经难以再隐藏下去了.小w有n+ 1(保证n为偶数)个心绪,每个都包含了[1,2n]的一个大小为n的子集.现在他要找到隐藏的任意两个心绪,使得他们的交大于等于n/2. 输入描述 ...

  6. 【CSP模拟赛】方程(数学)

    题目描述 求关于x的方程:x1+x2+……xk=n的非负整数解的个数. 输入格式 仅一行,包含两个正整数n,k. 输出格式 一个整数,表示方程不同解的个数,这个数可能很大,你只需输出mod 20080 ...

  7. 【csp模拟赛5】购物(shopping.cpp)--常规

    多项式,因为每次的x相同,所以把a和b相加就行了,然后找对称轴,找离对称轴最近的整数点,然而我却写了个暴力,没看x #include <iostream> #include <cst ...

  8. 【csp模拟赛4】旅行计划 (travelling.cpp)--欧拉回路

    [题目描述] 小 Z 打算趁着暑假,开启他的旅行计划.但与其他同学不同的是,小 Z 旅 行时并不关心到达了哪个网红景点打了哪些卡.小 Z 更关注沿路的风光,而且 小 Z 觉得,尽管多次到达同一个地方, ...

  9. 【csp模拟赛1】铁路网络 (network.cpp)

    [题目描述] 在暑假来临之际,小 Z 的地理老师布置了一个暑假作业,让同学们暑假期间 了解一下 C 国的铁路发展史.小 Z 在多番查证资料后发现,C 国在铁路发展初期, 铁路网络有着一个严密规整的结构 ...

随机推荐

  1. mysql 组合两张表

    select P.FirstName,P.Lastname,A.City,A.State from Person P left join Address A on P.PersonId = A.Per ...

  2. S03_CH01_AXI_DMA_LOOP 环路测试

    S03_CH01_AXI_DMA_LOOP 环路测试 1.1概述 本课程是本季课程里面最简单,也是后面DMA课程的基础,读者务必认真先阅读和学习. 本课程的设计原理分析. 本课程是设计一个最基本的DM ...

  3. shell习题第17题:检测磁盘

    [题目要求] 写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时候,发邮件提醒 [核心要点] df d ...

  4. skywalking-agent 与docker组合使用

    docker部署 公司有使用docker部署的微服务 可以直接使用  仓库/java:8-jdk-alpine-asla-shanghai-1-skyagent-2作为基础镜像 这个镜像包是java8 ...

  5. winfrom 保存图片

    private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); ...

  6. mvc控制器返回操作结果封装

    实体类 public class AjaxResult { /// <summary> /// 获取 Ajax操作结果类型 /// </summary> public Resu ...

  7. 【原创】大叔经验分享(83)impala执行多个select distinct

    impala在一个select中执行多个count distinct时会报错,比如执行 select key, count(distinct column_a), count(distinct col ...

  8. ASR性能测试方案--详细见云盘

    目录: 1. 什么是WER 2. WER计算原理 3. WER测试设计方案 4. 当前业界识别水平 1. 什么是WER 在语音识别(Automatic Speech Recognition, ASR) ...

  9. DOS导出文件夹或文件名

    dir /s /w >a.txt 应用dos导出当前目录下的文件夹名称(包括子目录,但是不包括文件,仅仅导出文件夹) dir /s/b/a:d >a.txt

  10. 404boom 博客闪现【不断的优化更新中。。。】

    404boom 博客闪现[不断的优化更新中...] 停止本篇博文EQ继续优化,所有博文将会在标签[cnblogs_v2 ]中重新整理,待完成统一放上链接 一:Java SE相关1.Java的概述2.J ...