当前位置: 首页 > news >正文

打卡信奥刷题(3199)用C++实现信奥题 P8106 [Cnoi2021] 数学练习

P8106 [Cnoi2021] 数学练习

题目背景

「Cnoi2021」Cirno’s Easy Round II 热身赛开始了。

题目描述

为了让选手们重视文化课,Cirno 特意加入了一道 Kamishirasawa Keine 老师的数学练习:

求将一个集合U={1,2,3,⋯ ,n}\texttt{U}=\{1,2,3,\cdots,n\}U={1,2,3,,n}划分成两个子集S,TS,TS,T,使得∣S∣∉S,∣T∣∉T|S|\notin S,|T|\notin TS/S,T/T的方案数。

由于选手都不会高精度,所以答案只需要对998244353998244353998244353取模即可。

输入格式

一行一个整数nnn

输出格式

一行,一个整数,表示答案。

输入输出样例 #1

输入 #1

3

输出 #1

2

输入输出样例 #2

输入 #2

6

输出 #2

10

输入输出样例 #3

输入 #3

65535

输出 #3

459810767

说明/提示

样例解释

#1: 两种合法的划分方案为{1,3},{2}\{1,3\},\{2\}{1,3},{2}{2},{1,3}\{2\},\{1,3\}{2},{1,3}

数据范围

对于100%100\%100%的数据,保证1≤n≤1051 \le n \le 10^51n105

重收录自 XDUCPC 2021 网络赛 B。

C++实现

#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintmod=998244353;constintmaxn=1e5;intn;intfac[maxn+1];intinv[maxn+1];intpower(intbase,intfreq,intmod){inttmp=base,ans=1;while(freq){if(freq&1)ans=ans*tmp%mod;freq>>=1;tmp=tmp*tmp%mod;}returnans;}voidinit(){fac[0]=1;for(inti=1;i<=maxn;i++){fac[i]=fac[i-1]*i%mod;}inv[maxn]=power(fac[maxn],mod-2,mod);for(inti=maxn-1;i>=0;i--){inv[i]=inv[i+1]*(i+1)%mod;}}intC(intn,intm){if(n<m)return0;returnfac[n]*inv[m]%mod*inv[n-m]%mod;}signedmain(){init();cin>>n;if(n==1){cout<<0<<endl;return0;}n-=2;if(n%2==0){cout<<(power(2,n,mod)-C(n,n/2)+mod)%mod;}else{cout<<power(2,n,mod);}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/740986/

相关文章:

  • 基于图像识别的鸣潮自动化工具:如何实现后台智能战斗与资源收集
  • OpenClaw AI Agent 生产级可观测性实战:基于 OpenTelemetry 与 Logfire
  • 从部署到运营:手把手教你用Docker玩转PlayEdu,打造专属企业知识库
  • 知网选嘎嘎降AI、维普选率零、朱雀选去i迹——2026 降 AI 软件场景排行。
  • 告别重复劳动:用predefined_classes.txt优化你的labelimg标注工作流
  • PCL2启动器深度解析:如何通过.NET架构革新Minecraft游戏体验
  • 如何将闲置电视盒子变身高性能服务器:Armbian系统终极指南
  • UVM寄存器模型实战避坑:从零搭建一个带配置总线的DUT验证环境(附完整代码)
  • 密码重置与邮件验证:The Copenhagen Book安全流程实现教程
  • 自建音乐流媒体服务器:基于Subsonic API与Node.js的Radioactive部署指南
  • 【PMP证书2026年竞争力排行榜:薪酬数据与避坑选择怎么样】 - 众智商学院课程中心
  • (第二十八篇)OpenClaw成本与感知的奇点——从“Token封建制”到“全民养虾”的本体论地基
  • 用OpenMV+STM32做小车跟踪,PID参数到底怎么调?我的调试笔记分享
  • Amlogic-S9xxx-Armbian实战指南:让电视盒子变身全功能Linux服务器
  • 告别红光干扰!OpenMV图像参数调优实战:解决电赛追踪中‘黑色胶带吸光’难题
  • Fiddler Everywhere 3.3.1 保姆级安装与汉化配置指南(附资源)
  • Kubeconform性能对比:为什么比Kubeval快6倍的终极秘密
  • WeChatMsg终极指南:3步永久保存你的微信聊天记录
  • 如何用OpenDTU替代Hoymiles原厂DTU:完整教程与实战指南
  • AzurLaneAutoScript完全指南:7×24小时碧蓝航线自动化管家
  • 暗黑3智能宏助手完整指南:三步快速上手,告别重复操作
  • 2026年5月六西格玛黑带与绿带认证性价比排行榜 - 众智商学院课程中心
  • 如何在3步内实现微信双设备登录:Xposed Hook技术深度解析
  • 从手机快充到服务器电源:拆解5个真实产品,看LLC电路如何‘统治’高效电源设计
  • 多尺度训练:解锁卫星图像深度学习的终极适应性方案
  • 5月2日成都地区华岐产焊管(Q235B;内径DN15-200mm)批发报价 - 四川盛世钢联营销中心
  • Gemma-3 Pixel Studio部署案例:制造业BOM表截图→结构化解析+ERP对接
  • InstaLooter多线程下载:worker.py如何实现高效并发
  • SendPortal常见问题与故障排除:从安装到使用的完整解决方案
  • 2025最权威的六大AI写作平台解析与推荐