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

P14639 【OIMO Round 1】世界线 TJ

P14639 【OIMO Round 1】世界线 TJ

0.前言

我是蒟蒻,我容斥学太差了,然后自己搞了一个比较好想的思路,如有错误欢迎各位dalao指出QwQ。

一些规定:

  • \(cnt_i\)表示i这个数出现了几次。

1.分析

我们发现这个序列他是一升一降的,所以先排序找性质。

e.g

1 2 3 4 5

直接看看不太出来,考虑固定选择的第一个数。

假设固定2作为我们选择的第一个数。因为我们每次需要选的数作为最小和最大出现,所以一定是一个往两边选数的过程,而且不能跳过中间的值。比如说我选了2然后先选择5再回来选3,这样是非法的,因为这样 \(2 < 3 < 5\) 3就既不是最大值也不是最小值了。

先考虑没有重复值的情况。我们选择当前固定中点 \(i\) ,此时左边和右边的数选择的内部顺序是固定的,所以我们不用考虑顺序,答案就是在剩下 \((n-1)\) 个选择次数中,选择 \((i-1)\) 次去选左边的数作为最小值。即:

\[C^{i-1}_{n-1} \]

现在考虑加上重复值。我们的计算就会失效,有很多重复的地方。

然后我们通过惊人注意力又可以发现一个美妙的性质:我最后选出来的除开固定的端点的序列,其前缀一定是 \(0\) ~ \((cnt_i-1)\) 个当前值,然后接上一个次大/小值。所以我们只需要枚举这个前缀,然后用组合数计算一下这个前缀对应的可能情况数,最后累加起来就是答案了。

2.实现

注意最后组合数的时候要仔细想一下哪些划分进左边,哪些划分进右边,不然会算漏或者算重一些情况。

有些特判我也不知道是不是必须加反正就是一坨屎山罢了QwQ。

AC code:

#include<bits/stdc++.h>
using namespace std;#define sht short
#define ll long long
#define ull long long
#define endl '\n'
#define xwy114514 ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define int llconst sht SHTINF=32767;
const int INTINF=0x7f7f7f7f;
const ll LLINF=0x3f3f3f3f3f3f3f3f;mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 rnd_64(chrono::steady_clock::now().time_since_epoch().count());
inline int readi(){int res=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c==EOF)return 0;if(c=='-')f=0;c=getchar();}while('0'<=c&&c<='9')res=(res<<1)+(res<<3)+(int)(c-'0'),c=getchar();return f?res:-res;}
inline ll readl(){ll res=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c==EOF)return 0ll;if(c=='-')f=0;c=getchar();}while('0'<=c&&c<='9')res=(res<<1)+(res<<3)+(int)(c-'0'),c=getchar();return f?res:-res;}
inline void FREOPEN(const string &IN,const string &OUT){freopen((IN+".in").c_str(),"r",stdin),freopen((OUT+".out").c_str(),"w",stdout);}
inline void xwymin(int &a,int b){a=(a<b)?a:b;}
inline void xwymax(int &a,int b){a=(a<b)?b:a;}
inline int getmin(int a,int b){return (a<b)?a:b;}
inline int getmax(int a,int b){return (a<b)?b:a;}const int N=1e6+10;
const int Mod=998244353;int n,cnt[N],jc[N],inv_jc[N],ans,p,pre,nxt;inline int qpow(int a,int b){int res=1ll;while(b){if(b&1)res=res*a%Mod;b>>=1,a=a*a%Mod;}return res;}
inline int Inv(int a){return qpow(a,Mod-2);}
inline int C(int a,int b){if(a>b||a<0)return 0;return (jc[b]*inv_jc[a])%Mod*inv_jc[b-a]%Mod;}inline void init(){jc[0]=1;for(int i=1;i<=n;i++)jc[i]=jc[i-1]*i%Mod;inv_jc[n]=Inv(jc[n]);for(int i=n-1;i>=0;i--)inv_jc[i]=inv_jc[i+1]*(i+1)%Mod;
}signed main(){
//	FREOPEN("","xwy");xwy114514;cin>>n;init();for(int i=1,a;i<=n;i++)cin>>a,cnt[a]++;for(int i=1;i<=n;i++)if(cnt[i]){if(!pre)pre=i;nxt=i;}for(int i=1;i<=n;i++){if(cnt[i]==0)continue;for(int j=0;j<=cnt[i]-1;j++){int r=cnt[i]-1;if(i!=nxt)ans=(ans+C(r-j+p,n-1-j-1))%Mod;if(i!=pre)ans=(ans+C(p-1,n-1-j-1))%Mod;if(i==pre&&i==nxt)ans=1;}p+=cnt[i];}	cout<<ans<<endl;return 0;
}

3.完结撒花

★,°:.☆( ̄▽ ̄)/$:.°★

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

相关文章:

  • 太和装修怎么选?解析本地交换空间装饰七大核心竞争优势 - 收录优先
  • 压差开关采购参考,甄选诚信供货商、规模化企业、优质机型与完善售后渠道 - 品牌推荐大师
  • 2026 年唯美汽车服务|喀什车灯升级改装避坑干货全解析 - 收录优先
  • 2026年高盐碱环境彩涂钢板厂家推荐:锌铝镁抗盐雾彩涂钢板选择指南 - 汇聚至此
  • 2026年金华地区服装店收银系统开发公司哪家好?正规实力服务商盘点+合规选型避坑全攻略 - 产业观察报
  • 2026年8月南京微软电脑售后维修指南|完整地址、联系电话与跌落进液后的安全检查 - 售后数码产品专业
  • 2026年,成都电缆优质品牌大揭秘,究竟啥牌子才值得选? - 企业推荐官
  • 2026河南自建房避坑指南:行业优劣解析与承建品牌怎么选 - 收录优先
  • 变更抚养权公证需要双方到场吗?记住这种情况例外 - 实用干货补给站
  • 中澳大件物流与家具海运专线企业推荐 - 行业深度分析
  • 2026菏泽曹县装饰装修行业现状与家装避坑实用干货 - 收录优先
  • 四川尾气处理公司哪家好?2026成都本地靠谱服务商盘点 - 市场沸点
  • 2026年高性价比彩涂钢板厂家推荐:代表性品牌与选型指南 - 汇聚至此
  • 沈中机床专业吗技术实力如何 - mypinpai
  • OMS订单管理系统怎么看? - 小橘甄选
  • 2026便利店收银系统开发公司甄选指南:正规服务商盘点 + 选型避坑FAQ + 优质机构推荐 - 商业大观
  • 2026年AIGC应用工程师证书报考新规解读:考核标准与体系调整 - 中科资质认证报考中心
  • .NET工控概念科普——下位机和固件,上位机开发者必须搞懂的另一半
  • 2026年南沙区正规代账公司实力****,到底哪家强? - 产品推荐官
  • 2026 东莞发南通物流专线公司推荐 | 家纺布艺、船舶配件、泡沫包装家具整车零担 - GrowthUME
  • 2026年广州GEO优化服务公司推荐,聚创网络值得了解 - 起跑123
  • 2026年库存尾货回收公司选哪家 定州梓晨商贸为您服务 - 起跑123
  • 资质科普|aaa 评级办理流程与适用行业讲解,方法别错过 - 慧办好
  • 【芜湖举办 | 安徽工程大学主办】第三届先进控制系统与自动化技术国际学术会议(ACSAT 2026) - 科研小猫(努力毕业版)
  • 科技展厅哪家好?2026年华竣数创深度评测与选型指南 - 天下观知
  • 2026餐饮收银系统服务商哪家好?全品类精选盘点+避坑FAQ,附金华本地头部服务商凤梨网络科技实力解析 - U渠道
  • 2026汽车贴膜行业避坑指南|车主如何选择正品膜与专业施工门店 - 收录优先
  • 2026年中小企业如何通过AI超级员工系统实现运营自动化? - GrowthUME
  • 扎根真实、跨越圈层:《讷河往事》尽显新大众文艺力量 - 滚动商讯
  • 医用级球形四氧化三铁,200‑300μm精准定制 - 产品推荐官