Description

详见OJ

Solution

感觉这题是最神仙的。。。
考场\(AC\)的人说自己是暴力枚举转移方程而得到了一个正确的转移式。
对于数据中的\(x\),我们发现分解质因数后,每个质因数的指数最大是\(2\)。

当指数为\(1\)的时候,很容易得出答案乘以\(n!\)(因为每列每行都只能有一个这个质数)
当指数为\(2\)的时候,那人通过暴枚得出\(f[i]=i*i*f[i-1]+i*(i-1)*(i-1)/2*f[i-2]\),答案乘以\(f[n]\)。
最后再乘以\(2^{(n-1)*(n-1)}\)即可。

Code

#include <cstdio>
#define N 5000000
#define ll long long
#define mo 998244353
#define mem(x, a) memset(x, a, sizeof x)
#define fo(x, a, b) for (int x = a; x <= b; x++)
#define fd(x, a, b) for (int x = a; x >= b; x--)
using namespace std;
int T, n, cs[31][2], tot = 0;
ll x, f[N + 10], jc[N + 10], tot1 = 0, tot2 = 0;inline int read()
{int x = 0; char c = getchar();while (c < '0' || c > '9') c = getchar();while (c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();return x;
}ll ksm(ll x, int y)
{ll s = 1;while (y){if (y & 1) s = s * x % mo;x = x * x % mo; y >>= 1;}return s;
}int main()
{freopen("pj.in", "r", stdin);freopen("pj.out", "w", stdout);scanf("%lld", &x);fo(i, 2, 3000)if (x % i == 0){
//          cs[++tot][0] = i;tot = 0;while (x % i == 0)x /= i, tot++;if (tot == 1) tot1++;else tot2++;}if (x > 1) tot1++;f[1] = 1, f[2] = 3; jc[1] = 1, jc[2] = 2;for (ll i = 3; i <= N; i++){f[i] = (i * i % mo * f[i - 1] % mo - i * (i - 1) / 2 % mo * (i - 1) % mo * f[i - 2] % mo + mo) % mo;jc[i] = jc[i - 1] * i % mo;}T = read();while (T--){n = read();printf("%d\n", ksm(jc[n], tot1) * ksm(f[n], tot2) % mo * ksm(2, (ll)(n - 1) * (n - 1) % (mo - 1)) % mo);}return 0;
}

转载于:https://www.cnblogs.com/jz929/p/11348962.html

jzoj 6301. 普及组相关推荐

  1. JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组

    本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...

  2. NOIP2005普及组第4题 循环

    NOIP2005普及组第4题 循环 时间限制: 1 Sec  内存限制: 128 MB 提交: 27  解决: 6 [提交][状态][讨论版][命题人:外部导入] 题目描述 乐乐是一个聪明而又勤奋好学 ...

  3. NOIP2013普及组 T2 表达式求值

    OJ地址:洛谷P1981 CODEVS 3292 正常写法是用栈 1 #include<iostream> 2 #include<algorithm> 3 #include&l ...

  4. 牛客网NOIP赛前集训营-普及组(第一场)

    前三题略 T4: 题目描述 小A有n个长度都是L的字符串.这些字符串只包含前8个小写字符,'a'~'h'.但这些字符串非常的混乱,它们几乎长得互不相同.小A想通过一些规则,让它们长得尽可能相同.小A现 ...

  5. 计算机方面特长特招进北大,成为科技特长生并不难,CSP普及组三等奖就可以

    每一步,与世界同步 5月18日,人大附中发布<2021年高中入学科技特长生招生简章>. 在这份<招生简章>中,值得注意的有4点: 科技特长生增加了40%的名额: 招生范围从海淀 ...

  6. noi2017初赛c语言试题,NOIP2017普及组初赛试题及答案

    原标题:NOIP2017普及组初赛试题及答案 清北学堂信息学金牌教研团今天为学生们整理了NOIP2017普及组初赛试题及答案,供学生们参考哦! --此文2100多文字,大概需要60分钟看完 一.单项选 ...

  7. NOIP普及组第1题(1995-2018)

    NOIP1995普及组复赛第1题 https://blog.csdn.net/secret_zz/article/details/76862335 https://blog.csdn.net/WDAJ ...

  8. 【codevs 1315】1315 摆花2012年NOIP全国联赛普及组(dp)

    1315 摆花2012年NOIP全国联赛普及组  时间限制: 1 s   空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description     小明的花店新开张,为 ...

  9. NOIP2012普及组 (四年后的)解题报告 -SilverN

    本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...

  10. [NOIP 2011普及组 No.4] 表达式的值

    [NOIP 2011普及组 No.4] 表达式的值 [问题描述] 对于1 位二进制变量定义两种运算: 运算的优先级是: 1. 先计算括号内的,再计算括号外的. 2. "×"运算优先 ...

最新文章

  1. 第十一届山东省大学生程序设计竞赛(热身赛)Mika with Cherry Cake
  2. MacBook Air 使用技巧
  3. VTK:直线网格之RGrid
  4. 使用 Node.js Express 的最佳实践
  5. ur机械臂 控制器_OnRobot末端执行器和统一接口已通过UR +计划认证
  6. 170329、用 Maven 部署 war 包到远程 Tomcat 服务器
  7. HDU 4548 美素数(打表)
  8. Kubernetes架构及相关服务详解
  9. shell脚本实现printf数字转换N位补零
  10. vue 第十天 (组件的基本使用)
  11. Dreamweaver/Flash CS4安装后打开时提示此产品的许可已停止工作
  12. 机器学习之PCA算法的人脸图像识别-平均脸的计算(详细操作步骤)
  13. vue使用 axios 跨域
  14. 洗地扫地机一体机好用吗、洗扫一体洗地机选购必看
  15. html图片滚动首尾互联,网页中多个图片首尾相接来回滚动
  16. pandas 之 pivot_table 与 pivot 的区别
  17. CloudComparePCL Ear Clipping三角化算法
  18. Windows CMD命令行进行日期计算及本件备份
  19. c++中函数屏蔽和函数参数屏蔽
  20. 安装xshell和Xftp时出现致命错误:-1603的解决方法

热门文章

  1. 一个简单的任务处理队列
  2. 6.MongoDB之索引
  3. transform与rigibody以及角色控制器的运动
  4. java: 非法字符: ‘\ufeff‘、java: 需要class, interface或enum
  5. 接口参数使用RequestBody和RequestParam注解的场景
  6. jenkins使用插件OWASP Dependency-Check Plugin对jar包漏洞扫描
  7. python字典变量定义_Python字典,函数,全局变量代码解析
  8. [渝粤教育] 中国地质大学 材料力学 复习题
  9. Docker系列(三)容器的基本操作
  10. TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS