最新要闻
- 重庆将为18万在校女学生免费接种HPV疫苗:全面预防宫颈癌
- 快资讯丨全球首创双枪充电!比亚迪赵长江:腾势D9纯电版20日左右交付
- 新消息丨做国内第一!深圳拼了:全市5G网速平均必500Mbps 上行下载更狠
- 全球球精选!你退了吗?网易已为超112万暴雪国服玩家退款
- 里程碑!ChatGPT参加美执业医师资格考试成绩合格 研究者:出了名的难
- 全球速看:雷军:小米汽车研发团队已超2300人 明年年一季度量产
- 最新快讯!真维斯官旗抄底:100%纯棉T恤4件99元包邮
- 上天入海!我国最新研发飞行器“同济飞鱼”:可实现水陆两栖
- ChatGPT或导致20种工作失业?远远不止 比尔盖茨:ChatGPT将改变世界
- 14不用管!小米小顽智能全自动猫砂盆预售:1399元
- 【天天快播报】首富想干啥?马斯克公司遭调查:涉嫌非法运输危险病原体
- 全球热议:eSIM终于等来出头之日
- 5人将苹果翻新机当正品卖:赚到1.16亿!最终获刑
- 当前速递!80后、90后的“死去的回忆”:都完整保存在这里
- 当前热门:《原神》国外配音演员龌龊劣迹被锤:涉嫌骚扰未成年粉丝
- 世界快资讯:大爷大妈景区爬松树站树顶拍照 景区称出事不负责!网友被吓到
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
LOJ 3395 集训队作业 Yet Another Permutation Problem 题解 (生成函数技巧)
(资料图片)
题目链接
原排列进行k次操作后,一定会剩下一个长度至少为\(n-k\)的上升区间。观察发现,一个排列能用\(\le k\)次操作得到的充要条件是:其中的最长上升区间长度\(\ge n-k\)。
我们枚举k,对每个k计算答案。最长上升区间长度\(\ge n-k\)的排列个数不太好算,我们可以算出最长上升区间长度\(\le n-k-1\)的排列个数,然后用总数减。为了方便,接下来的\(k\)表示上面的\(n-k-1\)。
我们先把序列划分成一些段,要求每一段都是单调递增,且每段长度\(\le k\),求总方案数(我知道会重复计数,但你先别急)。这是一个经典的生成函数计数题。令\(f_i\)表示i个不同元素排成上升序列的方案数,显然\(f_i=1(i\le k)\),为了方便使用生成函数,我们令\(f_0=0\)。令\(F(x)\)为f的指数型生成函数,\(G(x)\)为f的普通生成函数。\(F(x)=\sum_{i=1}^k \frac{x^i}{i!}\),\(G(x)=\sum_{i=1}^k x^i\)。根据EGF的组合意义,这个问题的答案为:\(([x^n]\sum_{i=0}^\infin F^i(x))\cdot n!\),其中\([x^n]\)表示这个多项式的n次项系数。
再来看看这个问题与原问题的关系。原问题中每个排列在这个问题中都被计数了多次。具体来说,对于一个排列,我们先把他划分成若干极长的上升区间,令它们的长度从左到右为\(l_1\cdots l_m\)。这个排列在这个问题中其实被计数了这么多次:\(\prod_{i=1}^m ([x^{l_i}]\sum_{j=0}^\infin G^j(x))\),从组合意义的角度这个式子也非常好理解。那么我们希望这个排列被计数多少次呢?其实是\(\prod_{i=1}^m [l_i\le k]\)次。如果我们能适当地修改f数组,使得对于任意\(l\),\([x^{l}]\sum_{i=0}^\infin G^i(x)=[l\le k]\),那么只要按照这个问题的流程跑一遍,就得到原问题的答案了。这其实是可以做到的。
\[\begin{align}[x^{l}]\sum_{i=0}^\infin G^i(x)&=[l\le k]\\\sum_{i=0}^\infin G^i(x)&=\sum_{i=0}^k x^i\\\frac 1{1-G(x)}&=\frac{1-x^{k+1}}{1-x}\\G(x)&=\frac{x-x^{k+1}}{1-x^{k+1}}\\\end{align}\]如果能求出\(G(x)\),也就确定了f,也就能求出\(F(x)\)从而求出答案了。这里似乎可以用多项式求逆,但是模数不是998244353所以会有问题。写任意模NTT的话常数又似乎太大了。我们来观察一下暴力多项式求逆的过程,看看能不能投机取巧:
\[\begin{align}令b为多&项式a的逆\\b_0&=\frac 1{a_0}\\b_i&=\frac{-\sum_{j=0}^{i-1}b_ja_{i-j}}{a_0}\\\end{align}\]为了避免混淆,重申一下"多项式求逆"的含义:对于一个多项式\(A(x)\),求出一个多项式\(B(x)\),使得\(A,B\)乘积的常数项为1,且1次项到\(n\)次项的系数都为0,更高次项的系数不管。
观察上面的暴力,发现其复杂度与\(a\)中不为0的项的数量有关(求那个sigma的时候可以只枚举a中不为0的项)。在求\(G(x)\)的过程中我们要给\(1-x^{k+1}\)求逆,打表(划掉)手画(划掉)观察一下发现\(1-x^{k+1}\)的逆中只有大约\(\frac nk\)项不为0,所以\(G(x),F(x)\)中不为0的项数也差不多是这个数量级。这部分的复杂度是\(O(n^2)\)(算上之前枚举k)。
然后是求出\(F(x)\)之后计算答案。我们需要计算\(\sum_{i=0}^\infin F^i(x)=\frac 1{1-F(x)}\)这个多项式。对\(1-F(x)\)求逆时,由于其中非0项的个数是\(\frac nk\)级别,求逆的复杂度是\(O(\frac {n^2}k)\)的。算上枚举\(k\),总复杂度是\(O(n^2logn)\)的。
点击查看代码
#include #define rep(i,n) for(int i=0;i#define fi first#define se second#define pb push_back#define mpr make_pairusing namespace std;void fileio(){ #ifdef LGS freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif}void termin(){ #ifdef LGS std::cout<<"\n\nEXECUTION TERMINATED"; #endif exit(0);}LL n,MOD,fac[1010],inv[1010];LL qpow(LL x,LL a){LL res=x,ret=1;while(a>0){if(a&1) (ret*=res)%=MOD;a>>=1;(res*=res)%=MOD;}return ret;}vector getInv(vector A){ vector v; rep(i,A.size()) if(A[i]!=0) v.pb(mpr(i,A[i])); vector ret; ret.pb(qpow(A[0],MOD-2)); repn(i,A.size()-1) { LL hv=0; rep(j,v.size()) { if(v[j].fi>i) break; if(i-v[j].fi polyMul(vector A,LL mns){ vector ret;ret.pb(0);rep(i,A.size()-1) ret.pb(A[i]); LL mul=MOD-1; rep(i,A.size()) if(i+mns A; A.pb(1);repn(i,k) A.pb(0);A.pb(MOD-1);while(A.size() B=getInv(A); vector F=polyMul(B,k+1); rep(i,F.size()) (F[i]*=inv[i])%=MOD; rep(i,F.size()) F[i]=(MOD-F[i])%MOD; (++F[0])%=MOD; F=getInv(F); LL ret=F[n]*fac[n]%MOD; return ret;}int main(){ fileio(); cin>>n>>MOD; fac[0]=1;repn(i,1005) fac[i]=fac[i-1]*i%MOD; rep(i,1003) inv[i]=qpow(fac[i],MOD-2); rep(nk,n) { LL k=n-nk-1; //答案=总数-所有上升子段的长度都<=k的排列数量 LL ans=(fac[n]-calc(k)+MOD)%MOD; printf("%lld\n",ans); } termin();}
-
LOJ 3395 集训队作业 Yet Another Permutation Problem 题解 (生成函数技巧)
题目链接原排列进行k次操作后,一定会剩下一个长度至少为$n-k$的上升区间。观察发现,一个排列能用$ ...
来源: LOJ 3395 集训队作业 Yet Another Permutation Problem 题解 (生成函数技巧)
重庆将为18万在校女学生免费接种HPV疫苗:全面预防宫颈癌
快资讯丨全球首创双枪充电!比亚迪赵长江:腾势D9纯电版20日左右交付
新消息丨做国内第一!深圳拼了:全市5G网速平均必500Mbps 上行下载更狠
全球球精选!你退了吗?网易已为超112万暴雪国服玩家退款
焦点快播:chatGPT接入个人微信(国内可用)
里程碑!ChatGPT参加美执业医师资格考试成绩合格 研究者:出了名的难
全球速看:雷军:小米汽车研发团队已超2300人 明年年一季度量产
最新快讯!真维斯官旗抄底:100%纯棉T恤4件99元包邮
2、如何验证是否存在CDN?
上天入海!我国最新研发飞行器“同济飞鱼”:可实现水陆两栖
ChatGPT或导致20种工作失业?远远不止 比尔盖茨:ChatGPT将改变世界
14不用管!小米小顽智能全自动猫砂盆预售:1399元
天天动态:Java8函数式编程读后总结与感想
新消息丨利用微PE制作官方最新纯净系统
【天天快播报】首富想干啥?马斯克公司遭调查:涉嫌非法运输危险病原体
全球热议:eSIM终于等来出头之日
5人将苹果翻新机当正品卖:赚到1.16亿!最终获刑
当前速递!80后、90后的“死去的回忆”:都完整保存在这里
当前热门:《原神》国外配音演员龌龊劣迹被锤:涉嫌骚扰未成年粉丝
环球百事通!【垃圾回收】v8引擎垃圾回收策略
世界快资讯:大爷大妈景区爬松树站树顶拍照 景区称出事不负责!网友被吓到
小白也能做应用(三)之fusion app远程更新及免登录
环球热文:kx00016-顺序表--用C语言实现:多种方法合并2个非递减顺序表
2月87款国产游戏获批版号:腾讯、网易新游来了
python之路68 drf从入门到成神 9 drf_jwt源码执行流程、自定义用户表签发和认证、simpleui的使用、权限控制(acl、rbac)
每日关注!导出域用户hash姿势总结
世界滚动:readelf命令读取elf文件的详细信息
再不用装一堆软件了!Windows 11可原生控制RGB信仰灯
天天热头条丨西安最倒霉面馆顾客暴涨员工数翻4倍 很多人慕名而来:感谢大家照顾
每日热门:56.函数模板
热门看点:学习打卡01- java入门
通讯!男子躲查酒驾3次跳河 血检结果却为0!结果令人舒适
流畅度飙升!小米:MIUI 14第一批正式版机型已全量推送
开了比亚迪之后 男子直呼不会开油车了:跟老人机一样
【当前独家】配1200W永磁同步电机!宗申TL3两轮版上市:可载重300公斤
世界快消息!别以为老师看不出来ChatGPT生成的论文!网友:你什么水平老师心里有数
世界热头条丨基于声网互动白板实现一个多人数独游戏
当前最新:学习笔记——尚好房项目(配置ssm环境、测试ssm环境)
《Towards Cooperation in Sequential Prisoner’s Dilemmas: a Deep Multiagent Reinfo
世界滚动:R机器学习:重复抽样在机器学习模型建立过程中的地位理解
【世界聚看点】火狐浏览器国内最受欢迎的扩展出炉:ABP等神级工具没入围
真相令人大跌眼镜!研究称莫奈印象派画风实则是雾霾
焦点要闻:土耳其地震“震出”隐秘地层:覆盖地球的44%、颠覆板块运动
今日最新!女子应聘财务被要求给五六人煮饭 负责人:吃饭不方便 可以不煮
多色多款 杰克琼斯卫衣89元包邮:低至1.3折清仓
项目终于用上了低代码,才知道为什么真香了!
机器学习-PCA
天天热消息:kx00015-顺序表--用C语言实现:删除顺序表中元素值等于x的所有元素
精彩看点:批处理脚本教程_编程入门自学教程_菜鸟教程-免费教程分享
vuex相关笔记
最新消息:realme 10 Pro可口可乐版发布:骁龙695 背壳logo爱了
【世界热闻】微信、微博全部断更!老干妈回应“退网”:经营一切正常
当前讯息:1TB版本太香了 真我GT Neo5供不应求 徐起:会加紧拧螺丝
焦点滚动:零添加:太太乐900ml*2瓶酱油最低26.4元
美少女手游《妮姬:胜利女神》即将推出PC版 推荐配置1650S
【全球聚看点】C#教程_编程入门自学教程_菜鸟教程-免费教程分享
环球时讯:【网关开发】8.Openresty 网关自定义健康检查的设计与实现
每日焦点!【0基础学爬虫】爬虫基础之爬虫的基本介绍
记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么
省选集训2023年2月9日T2
全球热讯:非油炸!吃欢天荞麦面皮10袋到手19.9元:麻酱、酸辣随便挑
世界今热点:ChatGPT版必应被华人小哥攻破:一句话“催眠”问出所有Prompt
世界热门:钙钛矿-硅光伏电池效率突破30%!可稳定工作30年
世界即时:公交车刹车提醒是2B请注意 当地回应:考虑不周将“改名”
环球热议:苹果忍不住反驳乔布斯女儿吐槽:iPhone 14比iPhone 13 Pro还要好
Entity Framework 教程_编程入门自学教程_菜鸟教程-免费教程分享
全球热文:【Spring】Bean注册注解
【当前独家】算法学习笔记(17): 快速傅里叶变换(FFT)
世界要闻:化繁为简|AIRIOT智慧水务信息化建设解决方案
环球资讯:让地球“流浪”前 先来研究下这一个更现实的威胁
女子疑吃自热火锅去世:不排除急性中毒、家属索赔176万元
当前消息!最香的i9+RTX 4080游戏本!ROG枪神7超竞版仅需18999元起
全球热讯:泰国1月份纯电动车上牌量排行:比亚迪称王、国产车霸榜
GTX 1060落魄了?《原子之心》1080P高画质需GTX 1080
环球关注:一步一腳印的 iOS App 上架和更新流程
当前快看:学习笔记——尚好房项目(项目介绍、环境搭建、配置依赖关系)
[数据结构] 二叉树的层次遍历
全球实时:JVM sandbox 实现热修复示例
《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
神十五航天员首次出舱视频公布:和地球同框 绝美
每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
速递!Android 14来了:提升续航和流畅度
《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
环球资讯:剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程
Docker安装使用Kafka
每日动态!机器学习-KNN
全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
24岁生日当天崩了!腾讯QQ回应:服务器挤爆了 现已恢复
【全球报资讯】酒剑仙拿狙蚌埠住了 《仙剑奇侠传》五位角色入驻《和平精英》
如何注册 ChatGPT ,OpenAI
每日头条!A/B测试教程_编程入门自学教程_菜鸟教程-免费教程分享
环球即时看!24亿巨制大片 《速度与激情10》开启预售 片长130分钟
天天热点!魅族20 Pro外观偷跑:矩阵三摄 纯白机身太吸睛
世界今日报丨年轻人别以赚钱为目标!张朝阳称别把考试太当回事:不一定非上好大学
天天即时:中国在土耳其建造电站强震中未受损:稳定保障救援电力供应
实时焦点:微软公布ChatGPT版Bing不到48小时:申请用户量已超百万
天天热推荐:01-数据结构与算法-目录索引
环球快消息!keycloak~再说session和token
学习笔记——redis集群(定义、集群连接、查看集群、节点分配方式、插槽、集群中录入值、查询集群中的值、故障恢复)