C1695 [Wannafly冬令营2018Day7]集合

内存限制:256 MB 时间限制:1000 ms

题目描述

定义一个集合 $S$ 的价值 $f(S)$ 为,存在几个有序组 $(x,y,z)$,使得 $x,y,z\in S$,且 $n|(x+y+z)$

给定 $n,k$,设集合 $T$ 为 ${0,1,....n-1}$,现在你需要求,有多少个 $T$ 的子集 $S$ 满足:$f(S)+f(T-S)\geq k$

由于答案可能很大,所以你只需要求答案对 $998244353$ 取模后的值即可

输入格式

第一行一个正整数 $T$ 表示数据组数 $(1\leq T\leq 10^3)$

接下来 $T$ 行,每行两个整数 $n,k$ $(1\leq n\leq 3000 , 0\leq k\leq 10^9 )$

输出

输出 $T$ 行,每行一个整数表示每组数据的答案

样例

样例输入 1

2 3 8 1000 800000

样例输出 1

2 416907688

提示