原题链接:樱花,还有你

$\scr{\color{DarkOrchid}{Solution}}$


Subtask1


  • 这是一个送分的:总和都不到$n$,无论怎么收集,花瓣数肯定不到$n$,输出impossible 即可,$5$分。
  • 因为此题要取模,可能最后答案正好为10086001倍数而为$0$,但此时应该输出$0$,而不是impossible !

Subtask2


  • 直接暴搜,$20$分。

Subtask3


  • 那么,暴搜为什么时间多呢?

    因为一些重复的被算了很多次!例如在第3棵树下收集到5朵,而第4棵树下没有收集与在第4朵树下收集到5朵,除了答案需要再加1外,第5棵树往后是一样的搜法。

  • 考虑优化(记忆化)

    dp[i][j] 表示在第$i$棵树下,已经收集到$j$朵花的方案数(取模后的值)

    设$k$为(0≤k≤min(j,ai)),表示已经收集到的k朵樱花

    那么转移方程就很简单了:dp[i][j]=∑dp[i−1][j−k] 记得取模

  • 时间复杂度 Ο(n3)

Subtask4


  • 发现$i,j$无法省略,考虑能否把枚举$k$,转移这个循环优化,发现求的是一个像前面和的一个东西,想到了二维线段树前缀和优化
  • 但是,此题只有64MB,MLE,考虑优化空间
  • 发现每一个$dp[i][j]$只与$dp[i-1][...]$有关,考虑滚动数组优化

Code

#include<bits/stdc++.h>
#define L long long
const int mod=10086001;
using namespace std;
int a[5005],sum[5005];
int dp[5005];
int main()
{
int n,k,summ=0,ans=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++) scanf("%d",&a[i]),summ+=a[i];
if(summ<n) return printf("impossible"),0;
sum[0]=1;
for(int i=1;i<=a[1];i++) sum[i]=sum[i-1]+1;
for(int i=a[1]+1;i<=n;i++) sum[i]=sum[i-1];
if(a[1]>=n) ans++;
for(int i=2;i<=k;i++)
{
for(int j=0;j<=n;j++)
{
if(j>a[i]) dp[j]=(sum[j]-sum[j-a[i]-1]+mod)%mod;
else dp[j]=sum[j]%mod;
}
sum[0]=dp[0];
for(int j=1;j<=n;j++) sum[j]=(sum[j-1]+dp[j])%mod;
ans=(ans+dp[n])%mod;
}
printf("%d",ans);
return 0;
}

后记:

  • 这是本蒟蒻的第一篇文章,如有写错的、写得不好的敬请提出。

Luogu P6394 樱花,还有你题解的更多相关文章

  1. luogu P1126 机器人搬重物 题解

    luogu P1126 机器人搬重物 题解 题目描述 机器人移动学会(\(RMI\))现在正尝试用机器人搬运物品.机器人的形状是一个直径\(1.6\)米的球.在试验阶段,机器人被用于在一个储藏室中搬运 ...

  2. 【luogu P2491 [SDOI2011]消防】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2491 题外话: OI一共只有三种题--会的题,不会的题,二分题. 题解: step 1 求树的直径,把树的直 ...

  3. 【luogu P1040 加分二叉树】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1040 今天考试考了一个区间DP...没错就是这个... 太蒟了真是连区间DP都不会...看了看题解也看不懂, ...

  4. Luogu P1351 联合权值 题解

    这是一个不错的树形结构的题,由于本蒟蒻不会推什么神奇的公式其实是懒得推...,所以很愉快的发现其实只需要两个点之间的关系为祖父和儿子.或者是兄弟即可. 然后问题就变得很简单了,只需要做一个正常的DFS ...

  5. 【luogu P1850 换教室】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1850 难的不在状态上,难在转移方程. (话说方程写错居然还有84分= =) #include <cst ...

  6. 【luogu P1558 色板游戏】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1558 我知道三十棵线段树很暴力,可是我们可以状压啊. 颜色最多30,不会爆int 另外 吐槽评测机 #inc ...

  7. 【luogu P3953 逛公园】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3953 题外话:感觉2017年神题好多..这还不是最神的一道,真在考场上我也就写个最短路计数暴力了.现在在大佬 ...

  8. 【luogu P1608 路径统计】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1608 补上一发最短路计数! 感谢王强qwqqqq @Lance1ot #include <queue& ...

  9. 【luogu P1156 垃圾陷阱】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1156 设\(dp[i][j]\)表示前i堆到达高度j时的所活最长时间 那么一旦到当前状态能到达满足的时间和高 ...

  10. 【luogu P2245 星际导航】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2245 = 货车运输 被逼着写过mst+lca 后来成了mst+树剖 #include <cstdio& ...

随机推荐

  1. 基于BP神经网络的手MNIST写数字识别

    import numpy import math import scipy.special#特殊函数模块 import matplotlib.pyplot as plt #创建神经网络类,以便于实例化 ...

  2. HTML元素大全(1)

    01.基础元素 <h1/2/3/4/5/6>标题 从大h1到小h6,块元素,有6级标题.是一种标题类语义标签,内置了字体.边距样式. 合理使用h标签,主要用于标题,不要为了加粗效果而随意使 ...

  3. 【JavaWeb】学习笔记——JSP

    概念 全称:Java Server Pages, Java服务端页面 描述:一种动态的网页技术,可以在其中定义HTML.JS.CSS等静态内容,以及Java代码的动态内容 说明:JSP = HTML ...

  4. MVC下拉框

    <select> @{ foreach (var item in 循环泛型) { <option value="@item.ID">@item.属性名< ...

  5. 题解 SP10500 HAYBALE - Haybale stacking

    前言 想了好久树状数组啥的,后来想想写打个差分再说,结果写完一遍AC了-- 强烈安利 题意 一个由 \(n\) 个元素组成的序列,给出 \(k\) 个操作,每次将 \(a\sim b\) 加上 \(1 ...

  6. Python基础之函数:2、globlal与nonlocal和闭包函数、装饰器、语法糖

    目录 一.global与nonlocal 1.global 2.nonlocal 二.函数名的多种用法 三.闭包函数 1.什么是闭包函数 2.闭包函数需满足的条件 3.闭包函数的作用 4.闭包函数的实 ...

  7. 关于ASP.NET Core WebSocket实现集群的思考

    前言 提到WebSocket相信大家都听说过,它的初衷是为了解决客户端浏览器与服务端进行双向通信,是在单个TCP连接上进行全双工通讯的协议.在没有WebSocket之前只能通过浏览器到服务端的请求应答 ...

  8. 这是不是你想要了解SQL的艺术,基础语法等等

    一.基础sql语句: 模块定义 基础语句 基础功能 数据定义 create table 创建数据库表 drop table 删除数据表 alter table 修改表结构 create view 创建 ...

  9. Windows骚操作

    电脑常用的快捷键 键盘功能健:Tab.Shift.Ctrl.Alt.Windows.Enter.空格.上下左右健.CapsLock(大小写转换).NumLock(对小键盘控制开/关) 键盘快捷键:全选 ...

  10. django启动报错:DisallowedHost at /

    学习django第一天,第一次启动服务就报错,报错内容如下: DisallowedHost at / Invalid HTTP_HOST header: '192.168.116.22:8000'. ...