zoukankan      html  css  js  c++  java
  • P6394 樱花,还有你

    第一行两个正整数 n,k表示要收集 n 朵樱花,而前方还有 k 棵樱花树。
    接下来一行 k 个正整数 s1,s2,⋯ ,sk​,其中 si​ 表示最多在第 i 棵樱花树下收集到 si​ 朵樱花。

    一行一个整数,表示恰好收集到 n 朵樱花的方案数。
    由于答案可能太大,请输出答案对 10086001 取模后的值。
    特殊地,如果收集不到 n 朵樱花,请输出一个字符串 impossible。

    #include <bits/stdc++.h>
    using namespace std;
    const int mn=5e3+3,mod=10086001;
    int f1[mn],f2[mn];
    int a[mn];
    int main()
    {
    	int n,m,sum=0;
    	cin>>n>>m;
    	for(int i=1;i<=m;++i)
    	{
    		scanf("%d",&a[i]);
    		sum+=a[i];
    		f2[0]=1;f1[0]=1;
    	}
    	if(sum<n)
    	{
    		cout<<"impossible";
    		return 0;
    	}
    	f1[0]=1;f2[0]=1;int ans=0;
    	for(int i=1;i<=m;++i)
    	{
    		int s=1;
    		for(int j=1;j<=n;++j)
    	    {
    	    	if(j-a[i]>0)
    	    	  s=(s-f1[j-a[i]-1])%mod;
    	    	while(s<0)  s+=mod;
    	    	s=(s+f1[j])%mod;
    	    	f2[j]=s;
    		}
    		ans=(ans+f2[n])%mod;
    		for(int j=1;j<=n;++j)
    		  f1[j]=f2[j];
    	}
    	cout<<ans;
    	return 0;
    }
    
  • 相关阅读:
    ffmpeg 视频ts切片生成m3u8
    ffmpeg细节整理记录
    网页前端video播放m3u8(HLS)
    ffmpeg 常用知识点收集
    网络视频m3u8解密及ts文件合并
    DNS地址列表
    mysqladmin 命令详解
    Linux安装MySQL
    MySQL常用权限操作
    linux 常用端口
  • 原文地址:https://www.cnblogs.com/org0/p/13960008.html
Copyright © 2011-2022 走看看