#P16465. 储能计划

储能计划

题目描述

一座储能站需要根据未来 nn 天的电价安排充放电。假设某一天的电价为 xx,当天可以执行以下三种操作之一:

  1. 支付 xx 的费用,为储能站充入一个单位的电能,且一天至多充入一个单位;
  2. xx 的价格卖出一个单位的电能,且一天至多卖出一个单位,同时当前必须至少储存了一个单位的电能;
  3. 不进行任何操作。

储能站初始没有储存电能,并且可用于购电的资金没有限制。它会采用能够使最终净收益最大的操作方案。

现在只知道每天的电价均为 1122。请统计有多少种长度为 nn 的电价序列,会使储能站能够获得的最大净收益恰好为 kk

输入格式

输入共两行,第一行为一个正整数 tptp,表示询问类型。

tp=1tp=1,则第二行有两个整数 n,kn,k,表示天数和要求的最大净收益。

tp=2tp=2,则第二行有一个正整数 nn,表示天数。

输出格式

tp=1tp=1,则输出一行一个整数 ansans,表示最大净收益恰好为 kk 的电价序列数量。答案对 998244353998244353 取模。

tp=2tp=2,则输出一行一个整数 ansans。设 waykway_k 表示最大净收益恰好为 kk 的电价序列数量,则

$$ans=\sum_{i=0}^{\lfloor \frac {n} {2} \rfloor} 233^i*way_i\ mod\ 998244353$$

样例

样例输入 1

1
4 2

样例输出 1

2

样例解释

共有两种符合要求的电价序列,分别为 [1,1,2,2][1,1,2,2][1,2,1,2][1,2,1,2]

数据范围与提示

subtask1(10pts)subtask 1(10pts)n20n \leq 20

subtask2(10pts)subtask 2(10pts)n300n \leq 300

subtask3(10pts)subtask 3(10pts)n5000,tp=1n \leq 5000,tp=1

subtask4(15pts)subtask 4(15pts)n5000n \leq 5000

subtask5(10pts)subtask 5(10pts)n105,tp=1n \leq 10^5,tp=1

subtask6(15pts)subtask 6(15pts)n105n \leq 10^5

subtask7(10pts)subtask 7(10pts)n106,tp=1n \leq 10^6,tp=1

subtask8(20pts)subtask 8(20pts)n106n \leq 10^6

对于所有数据,满足 $1 \leq n \leq 10^6,0 \leq k \leq \lfloor \frac {n} {2} \rfloor$