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

打卡信奥刷题(3289)用C++实现信奥题 P8962 「WHOI-4」yadiw. Slua, gassp, lhtubs.

P8962 「WHOI-4」yadiw. Slua, gassp, lhtubs.

题目背景

If you know at least 3 of these things and you are not red — you are doing it wrong. Stop learning useless algorithms, go and solve some problems, learn how to use binary search.

题目描述

小 F 有一个奇妙的数组aaaaaa中没有重复的元素,长度为nnn,他使用std::sort将他排序了,认为它是有序的,所以他正在使用这样的方法进行二分查找。显然,能否查到只和数列的离散化结果有关,所以你可以直接把aaa看作1∼n1\sim n1n的一个排列。

intsearch(intkey){intl=1,r=n;while(l<=r){intmid=(l+r)/2;if(a[mid]<key)l=mid+1;elseif(a[mid]==key)returnmid;elser=mid-1;}return-1;}

不幸的是,小 W 为了让他戒掉万能头,在bits/stdc++.h中写了#define sort random_shuffle,这意味着aaa实际是一个随机的排列。

现在,对于所有在111NNN范围内的nnn,以及所有在111nnn范围内的kkk,在aaa数列的所有排列中,有几个可以正确地找到第kkk小的元素keykeykey(即返回值非−1-11)?由于答案可能过大,请输出它对给定模数ppp取模的结果。

输入格式

一行两个正整数p,Np,Np,N

输出格式

NNN行,第nnnnnn个正整数,代表在nnn个元素中找kkk能找到的方案数。

输入输出样例 #1

输入 #1

998244353 5

输出 #1

1 1 2 4 4 4 12 12 14 18 48 54 60 66 72

说明/提示

数据范围

本题采用 Subtask 评测。

  • Subtask 1(101010pts):N=10N=10N=10,$ p\ge998244352$;
  • Subtask 2(252525pts):N=100N=100N=100p≥1009p\ge1009p1009且为素数
  • Subtask 3(252525pts):N=400N=400N=400p≥1009p\ge1009p1009且为素数
  • Subtask 4(404040pts):N=400N=400N=400

对于所有数据,10≤N≤40010\le N\le 40010N400,$ 2\le p\le998244353$。

C++实现

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintMAXN=4e2+10;intn,mod;ll ans[MAXN],fac[MAXN],c[MAXN][MAXN];intmain(){scanf("%d%d",&mod,&n),*fac=1;for(inti=1;i<=n;i++)fac[i]=fac[i-1]*i%mod;for(inti=0;i<=n;i++)c[i][0]=1;for(inti=1;i<=n;i++){for(intj=1;j<=n;j++)c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;}for(intm=1;m<=n;m++){for(inti=1;i<=m;i++)ans[i]=0;for(intk=1,l,r,mid,x,y,t;k<=m;k++){l=1,r=m,x=y=0;while(l<=r){mid=l+r>>1;if(mid==k)break;k<mid?(r=mid-1,y++):(l=mid+1,x++);}t=fac[m-x-y-1]%mod*fac[x]%mod*fac[y]%mod;for(inti=x+1;i<=m-y;i++){ans[i]=(ans[i]+c[i-1][x]*c[m-i][y]%mod*t%mod)%mod;}}for(inti=1;i<=m;i++)printf("%lld ",ans[i]);puts("");}}

后续

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

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

相关文章:

  • 工业计算机选型与部署实战:无风扇宽温设计在智慧工厂的应用
  • Vue3组合式API进阶:深入理解和高效使用Composition API
  • TrollInstallerX终极指南:iOS 14-16.6.1设备一键安装TrollStore
  • Kibana时间显示总差8小时?手把手教你从索引创建到数据查询的完整时区避坑指南
  • 咪头偏置电阻有什么作用? - 麦可兴mic10
  • Perplexity搜索评测数据集首次公开(含Query Log+响应时序+置信分):限时48小时免费下载
  • 显卡驱动彻底清理的终极武器:Display Driver Uninstaller深度指南
  • HTC Vive Pro Eye + Unity 2022:从零开始,5分钟搞定眼动数据读取(附完整Demo)
  • 吸顶交互逻辑全解析
  • 思源宋体TTF:如何用开源字体解决中文排版三大技术难题
  • 2026年5月全球领先GEO优化服务商五强技术实力与场景适配深度评估 - 产业观察网
  • 6大升级拆解(上):Rhapsody SE如何把复杂系统变得“可控、可追溯”
  • 如何在PowerPoint中高效使用LaTeX进行数学公式排版
  • DataGrip分屏操作全攻略:如何像高手一样同时调试多个SQL窗口?
  • 从宿舍到机房:手把手用两台华为交换机搭建小型办公网(含VLAN与静态路由)
  • Linux 的 uniq 命令
  • [RDMA]重传机制深度剖析:从Error触发到网络恢复的完整链路
  • 2026淮南装修公司推荐榜:口碑排名前五,选对不踩坑 - 速递信息
  • Halcon实战:用投影变换搞定倾斜标定板图像校正(附完整代码)
  • 2026邛崃市本地人必选的瓷砖空鼓专业维修公司TOP5推荐!卫生间空鼓翘边,厨房空鼓翘边,客厅空鼓翘边,全天响应,免费上门,5月专业瓷砖空鼓修复公司持证上岗师傅排名最新深度调研方案) - 一修哥修缮
  • 告别Keil卡顿!用J-Link和Ozone V3.32a调试STM32,体验丝滑的变量波形图
  • 避坑指南:OpenCV人脸识别项目整合MySQL时,你可能会遇到的5个数据存储难题
  • 5月最新:实测10款降AI率工具大汇总(附免费方案) - 殷念写论文
  • 2026年淮安婚纱摄影店排行榜:金帝皇后婚纱摄影,综合实力与口碑最优选 - 华Sir1
  • 账龄分析是什么?账龄分析如何助力企业高效经营?
  • PotPlayer字幕翻译插件终极指南:免费实现多语言实时字幕转换
  • 别再为CMSIS-DAP仿真器接线发愁了!板载与外置两种方案,从接线到Keil参数配置保姆级指南
  • 楼宇自控系统阀门技术:精准控制、节能原理与智能化集成实践
  • 【智慧养老合集】800余份智慧康养、数智康养、银发经济、智慧养老、数字养老、养老信息化平台方案报告(PPT+WORD+PDF)
  • 从‘压高光’到‘提暗部’:深入聊聊手机相机AE里的Histogram Stretch到底在干嘛