三金.紫题题解

news/2025/10/28 12:31:05/文章来源:https://www.cnblogs.com/xihegudi/p/19171486

image-20251028122706741

点击查看代码
</details>\#include <bits/stdc++.h>using namespace std;
using ll = long long;const int MOD = 998244353;
const int G = 3;// 快速幂
ll qpow(ll b, ll e) {ll res = 1;b %= MOD;while (e > 0) {if (e & 1) res = res * b % MOD;b = b * b % MOD;e >>= 1;}return res;
}// 数论变换 (NTT)
void ntt(vector<ll>& a, int type) {int n = a.size();vector<int> rev(n);for (int i = 0; i < n; i++) {rev[i] = (rev[i >> 1] >> 1) | ((i & 1) ? (n >> 1) : 0);if (i < rev[i]) swap(a[i], a[rev[i]]);}for (int mid = 1; mid < n; mid <<= 1) {ll wn = qpow(G, (MOD - 1) / (mid << 1));if (type == -1) wn = qpow(wn, MOD - 2);for (int i = 0; i < n; i += (mid << 1)) {ll w = 1;for (int j = 0; j < mid; j++, w = w * wn % MOD) {ll x = a[i + j], y = w * a[i + j + mid] % MOD;a[i + j] = (x + y) % MOD;a[i + j + mid] = (x - y + MOD) % MOD;}}}if (type == -1) {ll inv = qpow(n, MOD - 2);for (int i = 0; i < n; i++) a[i] = a[i] * inv % MOD;}
}// 多项式乘法
vector<ll> mul(vector<ll> a, vector<ll> b) {int deg = a.size() + b.size() - 1;int len = 1;while (len < deg) len <<= 1;a.resize(len);b.resize(len);ntt(a, 1);ntt(b, 1);for (int i = 0; i < len; i++) {a[i] = a[i] * b[i] % MOD;}ntt(a, -1);a.resize(deg);return a;
}int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n, k;cin >> n >> k;int m = n / 2;vector<ll> p(10, 0);for (int i = 0; i < k; ++i) {int d;cin >> d;p[d] = 1;}vector<ll> res = {1}; // 初始为 P(x)^0 = 1// 多项式快速幂while (m > 0) {if (m & 1) res = mul(res, p);p = mul(p, p);m >>= 1;}ll ans = 0;for (ll c : res) {ans = (ans + c * c % MOD) % MOD;}cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/948685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda环境离线迁移

有时候会遇见这样一种情况:conda环境非常难装,还需要在不同服务器上装,这时装完第一台不想麻烦,就可以打包离线安装 激活环境 conda activate myenv安装打包工具 conda install -c conda-forge conda-pack打包 con…

Java 条件结构

Java 条件结构 boolean 数据类型 boolean 数据类型用于声明取值仅为 true(真)或 false(假)的变量,是构成条件判断的基础。 以下场景均可用 boolean 类型表示判断结果:一件艺术品是真货还是假货 地铁 2 号线的首发…

1226. 哲学家进餐

1226. 哲学家进餐 题目描述5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放在哲学家之间的桌面上。(5 个哲学家,5 根叉子) 所有的哲学家都只会在思考和进餐两种行为间交替。哲学家只有同时拿到左边和右…

nginx服务配置

特点工作进程抢占机制同时保持长连接和接收新的请求模块体系,很多lb只是用于网站正向代理,代理的客户端,知道自己访问的地址a客户端,访问谷歌中间是一个欧美的服务器代理浏览器,从而实现访问反向代理 ,代理的是服…

Java流程控制——if选择结构

Java流程控制——if选择结构If单选择结构 If(布尔表达式){ //若布尔值为真,则执行该语句 } import java.util.Scanner;public class If_demo01 {static void main(String[] args) {Scanner sc = new Scanner(System.i…

python 界面开发

Pyside6和python的对应关系 https://wiki.qt.io/Qt_for_Python

CTP制版设备品牌权威推荐:洞察行业翘楚,赋能印刷未来

在数字化浪潮席卷全球的今天,印刷产业正经历着前所未有的智能化变革。计算机直接制版技术,即CTP,作为连接数字设计与物理印刷的关键桥梁,其设备的性能、稳定性与创新性直接决定了印刷企业的生产效率与最终成品质量…

「Note」计算几何

计算几何基础计算几何基础 点积与叉积 点积 对于 \(\vec a, \vec b\),定义其点积: \[\vec a\cdot \vec b = |\vec a| |\vec b| \cos \langle \vec a, \vec b\rangle = x_a x_b + y_a y_b \]一般用于判断两向量夹角。…

从 “报表堆里找问题” 到 “实时预警止损”:MyEMS 如何终结能源管理低效?

在双碳目标与成本压力的双重驱动下,能源管理早已成为企业运营的核心环节 —— 但许多企业仍被困在 “报表堆里找问题” 的传统模式中:月底汇总数据、人工核对报表、发现异常时能耗浪费已发生、整改措施滞后于损失,这…

[PaperReading] Breaking the Modality Barrier: Universal Embedding Learning with Multimodal LLMs

目录Breaking the Modality Barrier: Universal Embedding Learning with Multimodal LLMsTL;DRMethod阶段一:Textual Discriminative Knowledge Distillation阶段二:Hard Negative Enhanced Instruction Tuning过滤…

【CI130x 离在线】语音芯片如何判断TTS音频播放完毕?

这个函数通过以下几个条件来综合判定TTS播放结束: 主要判定逻辑: 1. 缓冲区数据检查c#if NET_AUDIO_PLAY_BY_MP3 if (xStreamBufferBytesAvailable(mp3_player) == 0) // 播放完成 #elif NET_AUDIO_PLAY_BY_PCM || N…

完整教程:Qt信号与槽在多线程编程中的应用与注意事项

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从 “短期达标” 到 “长期优化”:MyEMS 如何帮企业建立可持续的能源管理体系?

能源管理体系:短期与长期目标解析 在当今追求可持续发展的时代,能源管理体系对于企业而言至关重要。它犹如企业能源管理的指南针,引导企业在能源利用的道路上不断优化前行。能源管理体系的目标可以大致分为短期达标…

四场比赛(三)

0.前言 不会二项式反演了。 1.正文 20251028 我怒了。我不会二项式反演了。哭了。

使用DAST发现Android应用API中的AWS凭证泄露漏洞

本文详细介绍了如何通过动态应用安全测试(DAST)技术,在Android应用API中发现泄露的AWS凭证,这些凭证可能导致AWS基础设施被接管,包含完整的测试环境搭建和漏洞发现过程。发现隐藏威胁:我如何使用DAST在Android应用…

百航鹿大联训 Pwn篇

好难我靠,太难了。 四个人就我一个是主攻binary的,什么汇编、堆栈、计组一个没学,在人家机房里像个飞舞。 干巴爹。 hitb2018_gundam 纪念一下,人生第一道做出来(呃,复现出来)的Pwn题。人家教练交代的任务说什么…

开发stm32-配置vscode环境

第一步: 下载编译工具: 第二步: 打开vscode,安装相关插件。第三步:生成文件 (1)打开命令面板(Ctrl+Shift+P)输入并选择 C/Cpp: Edit Configurations (UI)。 第四步:配置c_cpp_properties.json 参照以下配置:…

iNeuOS工业互联网操作系统,增加工厂模型配置,继续深入业务

这次增加《生产工厂》模型配置,面向集团业务场景,可以增加多个工厂、每个工厂配置多个工序和班制信息。后续继续深化面向智能制造生产一体化管控具体业务,实现能源监测、能源统计和分析等功能模块。1. 概述 之前…

C++语法—类的声明和定义

一、 类的声明和定义 class 类名 {public:数据成员的声明成员函数的声明private:数据成员的声明成员函数的声明protected:数据成员的声明成员函数的声明 } 自生类的对象不可以作为该类的成员,但自生类的指针或引用可以…

施工用电隐患 “无形侦探”!思通数科 AI 卫士自动排查用电违规

施工用电是施工现场安全管理的 “重中之重”,但传统人工巡检模式常因 “专业性要求高、隐患隐蔽性强” 陷入困境:电缆泡水、电线私拉乱接(如直接缠绕钢管、未穿管保护)等隐患,藏在设备角落或地面杂物下,人工难以…