题意

给定n和k个区间,每个区间都不想相交,在每一个位置(p)都可以从任意一个区间拿出一个属于这个区间的数(d)然后跳转到p+d位置,但是位置不能超过n。从1开始到达n有多少种方法。

需要利用前缀和进行优化。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <cmath>
#include <string>
#include <vector>
#include <stack>
#include <map>
#include <sstream>
#include <cstring>
#include <set>
#include <cctype>
#include <list>
#include <bitset>
#define IO                       \ios::sync_with_stdio(false); \// cin.tie(0);                  \// cout.tie(0);
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int maxn = 1e6 + 100;
const int maxm = 1e6 + 10;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int inf = 0x3f3f3f3f;
const LL mod = 998244353;
// int dis[8][2] = {0, 1, 1, 0, 0, -1, -1, 0, 1, -1, 1, 1, -1, 1, -1, -1};
int L[15], R[15];
LL sum[maxn];
LL dp[maxn];
int main()
{
#ifdef ONLINE_JUDGE
#elsefreopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);
#endifIO;LL n, k;cin >> n >> k;for (int i = 1; i <= k; i++)cin >> L[i] >> R[i];dp[1] = 1;sum[1] = 1;for (int i = 2; i <= n; i++){for (int j = 1; j <= k; j++){int l = L[j], r = R[j];dp[i] = (dp[i] + sum[max(0, i - l)] - sum[max(0, i - r - 1)] + mod) % mod;}sum[i] = (sum[i - 1] + dp[i]) % mod;}cout << dp[n] % mod;return 0;
}

Atcoder abc179 D - Leaping Tak(前缀和维护DP)相关推荐

  1. 【实数二分/前缀和维护】Best Cow Fences

    Poj 2018 Best Cow Fences 实数二分+前缀和维护 调了一晚上, 但发现没什么注意事项orz 无输出只因eps定义成了int型QAQ哭唧唧 #include<cstdio&g ...

  2. Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake 线段树维护dp

    D. Babaei and Birthday Cake 题目连接: http://www.codeforces.com/contest/629/problem/D Description As you ...

  3. YBTOJ:采矿战略(线段树维护dp、树链剖分)

    文章目录 题目描述 解析 代码 题目描述 所谓线段树维护dp,就是在线段树上维护dp (逃) 解析 把树剖一下后就变成了区间问题 考虑建一棵线段树,每一个结点都是一个背包 这样就能区间查询,也能带修了 ...

  4. 玲珑oj 1032 (容斥原理或前缀和优化dp)

    题面十分简单,n个球放m个盒子,可以空,盒子不同,要求球数最多的盒子唯一,方案数题面十分简单,n个球放m个盒子,可以空,盒子不同,要求球数最多的盒子唯一,方案数 n,m都是500,考虑复杂度O(n3) ...

  5. AtCoder题解——Beginner Contest 179——D - Leaping Tak

    题目相关 题目链接 AtCoder Beginner Contest 179 D 题,https://atcoder.jp/contests/abc179/tasks/abc179_d. Proble ...

  6. AtCoder Beginner Contest 179----D.Leaping Tak

    旧人旧事更值得怀念,或悲或喜每个人身上都承载着某一段时光,但是我会永远清澈永远疯狂永远浪漫.没有人能回到过去重新活过,但你我都可以从现在开始,决定我们未来的模样.                    ...

  7. Atcoder dp_m Candies 前缀和优化dp

    文章目录 题意 题解 题意 给nnn个孩子发kkk颗糖,每个孩子最多拿到aia_iai​颗,问有多少种分法. n≤100,k≤105n\leq 100,k\leq 10^5n≤100,k≤105. 题 ...

  8. 【CodeForces - 1060C】Maximum Subrectangle (思维,预处理前缀和,dp,枚举长度)

    题干: You are given two arrays aa and bb of positive integers, with length nn and mmrespectively. Let  ...

  9. 线段树 ---- Codeforces 737 Div2 D. Ezzat and Grid 维护dp

    题目链接 题目大意: 就是给你很多行的010101串,长度是1e91e91e9,每一行都有若干段的连续的111,对于给定的串集合是美丽的美丽的美丽的的条件是任意相邻两行的串至少有一个列是同时有111的 ...

最新文章

  1. 黄金矿工-收益最大化
  2. NK3C程序资源占用分析
  3. AttributeError: ‘pyltp.Postagger‘ object has no attribute ‘load‘
  4. jakarta ee_Jakarta EE贡献–入门
  5. vue 2 使用 Bus.js 实现兄弟 (非父子) 组件通信 简单案例
  6. OpenGL画简单图形
  7. js 获得radio的值
  8. 五年了,你还在用junit4吗?
  9. web安全之SQL注入---第四章 如何进行SQL注入攻击
  10. i7 网站服务器,i7服务器地址
  11. FPGA学习笔记---利用连续赋值语句延时功能实现按键消抖
  12. Unity C#代码小技巧
  13. FileZilla,读取目录列表失败(425 Can‘t open data connection.)的解决办法
  14. html渐变颜色代码表,渐变颜色代码表
  15. php自动发卡程序8.0_API支付代理版自动发卡平台源码 v4.5.8
  16. t480 拆触摸板_thinkpad t470怎么关闭触摸板?
  17. mac安装淘宝镜像cnpm,绝对有效!!!!!!
  18. 长沙理工大学计算机电路b试题,长沙理工大学考试试卷(计算机网络)
  19. 怎么把avi文件转换成mp4视频格式,4个高能方法
  20. 强化云原生基础服务,焱融科技 YRCloudFile 与秒云完成产品兼容性互认证

热门文章

  1. WEB安全的学习总结与心得(五)
  2. 第十一届山东省省赛题解BCDFGHJM
  3. 如何在浏览器中运行 VS Code?
  4. 焦距、光圈、快门、景深的基础知识
  5. unity主角移动到屏幕最左侧时向上移动_王者荣耀:新增右手模式,连线功能升级,守卫峡谷增加天赋系统 – 手机游戏网—推荐最精彩的手机游戏...
  6. 极值点坐标C语言,C语言——打印极值点下标
  7. P3243 [HNOI2015]菜肴制作(拓扑排序)
  8. Java mysql同步复制_MySQL数据的主从复制、半同步复制和主主复制详解
  9. 【typescript】断言签名与谓词签名!详解ts中神奇的asserts与is
  10. hadoop2.X视频教程全集下载