F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

愿望幽灵

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 43    Accepted Submission(s): 19


Problem Description
给定 $c$,设 $q_k$ 表示有一个 $2\times k$ 的矩阵,初始时所有位置均为空,要从中选出 $k$ 个位置涂上 $0,1,\dots,c$ 的数字,使得每列至多存在一个数字非 $0$ 的方案数。

每个位置只能涂上一种数字。

空的位置与染上任何一个数字的位置都是不同的。

每种数字可以出现在多个位置上。

给定 $n$,求 $q_1,q_2,\dots,q_n$ 模 $998244353$。

为了减小输出量,只需要输出它们的异或和即可。
 

Input
本题有多组测试数据。

第一行,一个正整数 $T$ $(1 \le T \le 5)$ 表示数据组数。

对于每组数据,第一行两个整数 $n,c$ $(1 \le n \le 10^7,0 \le c < 998244353)$。
 

Output
对于每组数据,一行一个非负整数,表示 $q_1,q_2,\dots,q_n$ 模 $998244353$ 后的异或和。
 

Sample Input
3 5 0 3 1 3 2
 

Sample Output
170 154 420
 

Hint

对于第一组数据:
异或前的结果为 [2, 6, 20, 70, 252]。
对 q[1],考虑将第 1 行第 1 列的格子或第 2 行第 1 列的格子涂上 0 即可。
对 q[2],考虑任意选出两个格子涂上 0 即可。

对于第二组数据:
异或前的结果为 [4, 22, 136]。
对 q[1],考虑将第 1 行第 1 列的格子或第 2 行第 1 列的格子涂上 0 或 1 即可。

对于第三组数据:
异或前的结果为 [6, 46, 396]。
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-04 14:36:40, Gzip enabled