G48 二项式反演
#include <iostream> #include <cstring> #include <algorithm> #define LL long long using namespace std; LL n,s,ans,fac[25]; int main(){ scanf("%lld",&n); fac[0]=1; for(int i=1;i<=n;i++) fac[i]=fac[i-1]*i; for(int i=0;i<=n;i++){ s=fac[n]/fac[i]; if(i&1) ans-=s; else ans+=s; } printf("%lld\n",ans); return 0; }
染色问题
#include <iostream> #include <cstring> #include <algorithm> #define LL long long using namespace std; const int M=100005,P=1e9+7; int n,m; LL a[M], b[M]; LL qpow(LL x, int y){ LL res=1; for(; y; x=x*x%P,y>>=1) if(y&1) res=res*x%P; return res; } void init(){ a[0]=b[0]=1; for(int i=1; i<M; i++){ a[i]=a[i-1]*i%P; b[i]=b[i-1]*qpow(i,P-2)%P; } } LL C(LL n, LL m){ return a[n]*b[m]%P*b[n-m]%P; } int main(){ init(); cin >> n >> m; int ans=0, tmp; for(int i=2;i<=m;i++){ tmp=C(m,i)*i%P*qpow(i-1,n-1)%P; if((m-i)&1) (ans+=-tmp+P)%=P; else (ans+=tmp)%=P; } printf("%d\n",ans); }
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=2005,P=1e9+9; int n,k,a[N],b[N]; int F[N][N],f[N],C[N][N]; int main(){ scanf("%d%d",&n,&k); for(int i=1; i<=n; i++) scanf("%d",&a[i]); for(int i=1; i<=n; i++) scanf("%d",&b[i]); for(int i=0;i<=n;i++) C[i][0]=1; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) C[i][j]=(C[i-1][j-1]+C[i-1][j])%P; sort(a+1,a+n+1); sort(b+1,b+n+1); for(int i=0;i<=n;i++) F[i][0]=1; for(int i=1,p=0;i<=n;i++){ while(p+1<=n && b[p+1]<a[i]) p++; for(int j=1;j<=n;j++) F[i][j]=(F[i-1][j]+1ll*F[i-1][j-1]*(p-j+1)%P)%P; } for(int j=n,s=1;j>=1;j--) f[j]=1ll*F[n][j]*s%P, s=1ll*s*(n-j+1)%P; int ans=0, x=(n+k)/2; for(int i=x;i<=n;i++){ int tmp=1ll*C[i][x]*f[i]%P; if((i-x)&1) (ans+=-tmp+P)%=P; else (ans+=tmp)%=P; } printf("%d\n",ans); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!