题目 题意:给定两个数组 s , t s,t s,t,现重排列数组 s s s,使得数组 s s s小于 t t t。问有多少种排列方式。
参考 代码源自cwxzh
#include
using namespace std;
#define ll long long
const ll mod=998244353;
ll n,m,a[202020],cnt,p[202020],ans,fac[202020],inv[202020],s[202020],invfac[202020];
// 树状数组
ll lowbit(ll aa){
return aa&-aa;
}
void add(ll pos,ll x){
for(ll i=pos;i0;i-=lowbit(i)) res+=s[i];
return res;
}
int main(){
cin>>n>>m;
for(int i=1;i>x;
p[x]++;
cnt=max(cnt,(ll)x);
}
for(int i=1;i>a[i];
fac[0]=fac[1]=inv[0]=inv[1]=invfac[0]=invfac[1]=1;
for(int i=2;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?