PS:如果读过题了可以跳过题目描述直接到题解部分
提交链接:洛谷 T284709 怨念(resent)

题目

题目背景

“结束了。”dlh眼睁睁地看着右下角的时间到达13:00。屏幕上只留下一个 O(n2)O(n^2)O(n2) 的暴力。
这场考试成为了dlh的心理阴影,所以他今天要滥用出题人的权力,将这一不美好的回忆强加于你。

题目描述

现在你被迫解决根据dlh转化错的题意出的题:给定整数 n,kn,kn,k,对于每个 i∈[1,n]i\in[1,n]i∈[1,n],求满足下列条件的
整数数列 aaa 权值之和:
数列长度 ∣a∣=i|a|=i∣a∣=i ,元素大小均在 [1,n][1,n][1,n] 中,且 aaa 中没有相同元素。
一个数列 aaa 的权值定义为 Πi=1∣a∣kai\Pi _{i=1}^{|a|}k^{a_i}Πi=1∣a∣​kai​。
答案对 998244353998244353998244353 取模。

输入格式

一行两个正整数 n,kn,kn,k。

输出格式

nnn 行,第 iii 行一个正整数,表示 ∣a∣=i|a|=i∣a∣=i 时的答案。

样例 #1

样例输入 #1

3 3

样例输出 #1

39
702
4374

样例 #2

样例输入 #2

20 4

样例输出 #2

592793496
665177021
954073671
15970570
751832606
243984599
387448346
418729740
223224628
604189073
211339162
523261611
196916730
586763100
706792305
194432676
664618102
203112049
922150155
823565468

提示

样例1解释

以长度 i=2i=2i=2 为例,合法序列有 [1,2],[1,3],[2,3],[2,1],[3,1],[3,2][1,2],[1,3],[2,3],[2,1],[3,1],[3,2][1,2],[1,3],[2,3],[2,1],[3,1],[3,2],权值分别为
27,81,243,27,81,24327,81,243,27,81,24327,81,243,27,81,243,和为 702702702。

数据范围与提示

对于前 10%10\%10% 的数据,n≤20n\le20n≤20。

对于前 40%40\%40% 的数据,n≤5000n\le5000n≤5000。

对于前 70%70\%70% 的数据,n≤216n\le 2^{16}n≤216。

对于所有的数据,1≤n≤5×106,0<k<9982443531\le n\le 5\times 10^6,0<k<9982443531≤n≤5×106,0<k<998244353

题解


代码实现

100pts

//洛谷 T284709 怨念(resent)
#pragma GCC optimize(3)
#include<iostream>
#include<cstdio>
using namespace std;
const int mo=998244353;
long long n,k,m;
long long p[5000010];//k^i
long long ikni;//inv(k^(n*i))
long long ikn;//inv(k^n)
long long kii;//k^(i*i)
long long iki;//inv(k^i)
long long ik;//inv(k)
long long a[5000010];//i!
long long b[5000010];//k^i-1的前缀积
long long ib[5000010];//k^i-1的逆元
long long so=1,ma=1;void in(long long &x){int nt;x=0;while(!isdigit(nt=getchar()));x=nt^'0';while(isdigit(nt=getchar())){x=(x<<3)+(x<<1)+(nt^'0');}
}long long mi(long long x,long long y){long long ans=1;while(y){if(y&1){ans=(ans*x)%mo;}x=(x*x)%mo;y>>=1;}return ans;
}int main(){in(n),in(k);k=mi(k,mo-2);ik=mi(k,mo-2);p[0]=1;a[0]=1;b[0]=1;for(m=1;m<=n;++m){p[m]=p[m-1]*k%mo;b[m]=(b[m-1]*(p[m]-1))%mo;a[m]=a[m-1]*m%mo;}ikn=mi(p[n],mo-2);ib[n]=mi(b[n],mo-2);for(m=n-1;m>=1;--m){ib[m]=ib[m+1]*(p[m+1]-1)%mo;}for(m=1;m<=n;++m){ib[m]=ib[m]*b[m-1]%mo; }//给ib赋值ikni=1;kii=1;iki=1;for(m=1;m<=n;++m){ikni=ikni*ikn%mo;so=so*(p[n]-p[m-1])%mo;//累计分子ma=ma*iki%mo*ib[m]%mo;//累计分母iki=iki*ik%mo;printf("%lld\n",(so*ma%mo*ikni%mo*kii%mo+mo)*a[m]%mo);kii=kii*p[m]%mo;}return 0;
}

洛谷 T284709 怨念(resent)相关推荐

  1. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  2. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  3. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  4. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  5. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  6. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

  7. 记忆优化搜索(简单题)(洛谷P3183 [HAOI2016]食物链 )( P5635 【CSGRound1】天下第一 )

    昨天做了蓝桥杯的时候,发现自己对于记忆优化搜索甚是不熟悉,所以今天随便找了几个基础题做做,顺便写下两片题解,顺便用了一下devc++敲的代码,发现没有代码补全真的可以说是灰常难受了... 洛谷P318 ...

  8. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  9. 洛谷专题训练 ——【算法1-1】模拟与高精度

    洛谷题单[算法1-1]模拟与高精度 ACM-ICPC在线模板 题单链接: [算法1-1]模拟与高精度 下面的这一坨都是洛谷题单上的东东 题单简介 恭喜大家完成了第一部分语言入门,相信大家已经可以使用 ...

最新文章

  1. POJ1573-Robot Motion
  2. SSH登陆慢的原因分析及解决
  3. C# WinForm开发系列 - DataGridView A
  4. A different twist on pre-compiling JSPs--reference
  5. linux中vi大括号enter缩进,格式 – 如何在vi中对齐代码(大括号,括号等)?
  6. 【HNOI2016】序列【莫队】【单调栈】【ST表】
  7. python图片转base64编码,与base64编码转图片
  8. c 语言从大到小排序算法,10 大经典排序算法(动图演示+ C 语言代码)
  9. zabbix数据库历史数据清除
  10. SSM项目-山东医院-可行性配置-1
  11. 1、mac:jdk 8下载和安装步骤
  12. 2台无线路由器桥接,共享打印机
  13. WAP中推送技术的分析与设计(转)
  14. 手机3D的新境界:Omnia II 是3D方面的力作!!
  15. maven项目创建出错Could not calculate buil d plan:Plugin org.apache.maven.plugins 避坑
  16. VC++6.0 MSDN下载地址
  17. 《C++ 黑客编程揭秘与防范(第2版)》——6.2 详解PE文件结构
  18. 天道酬勤,奋斗不止!
  19. Hbuilder x css样式编写无提醒
  20. opencv 稀疏光流 稠密光流

热门文章

  1. 软件交付方式有哪些_如何交付有意义的软件
  2. python字典get方法
  3. postGIS错误line_locate_point: 1st arg isnt a line
  4. matlab中leg的用法,LEG引擎变量操作指南详解
  5. 2019校招农行面试经验
  6. Clickhouse单机部署以及从mysql增量同步数据
  7. JVM学习总结笔记2
  8. 《队长说得队》第三次作业:团队项目的原型设计
  9. 微小宝公众号排行榜_无锡校园公众号排行榜(11.15—11.21)
  10. 以python自定义模块的方式共享API(数据,短信通知、邮件通知,代理等)