专栏文章
UVA11806 Cheerleaders
UVA11806题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqkqmmg
- 此快照首次捕获于
- 2025/12/04 06:24 3 个月前
- 此快照最后确认于
- 2025/12/04 06:24 3 个月前
前言
基础容斥,建议降绿
题解
根据容斥原理,答案为:保留 条边的方案数-保留 条边的方案数+保留 条边的方案数-保留 条边的方案数+保留 条边的方案数,组合数计算即可。
注意 。
代码
CPP#include<bits/stdc++.h>
using namespace std;
const int mod=1e6+7,N=510;
int n,m,k,C[N][N];
void solve(int T){
cin>>n>>m>>k;
cout<<"Case "<<T<<": "<<(C[n*m][k]-C[n*m-n][k]+mod-C[n*m-n][k]+mod-C[n*m-m][k]+mod-C[n*m-m][k]+mod
+C[n*m-n-m+1][k]+C[n*m-n-m+1][k]+C[n*m-n-m+1][k]+C[n*m-n-m+1][k]+C[n*m-n-n][k]+C[n*m-m-m][k]
-C[n*m-n-n-m+2][k]+mod-C[n*m-n-n-m+2][k]+mod-C[n*m-n-m-m+2][k]+mod-C[n*m-n-m-m+2][k]+mod+C[n*m-n-n-m-m+4][k])%mod<<"\n";
}
int main(){
int T;cin>>T;
C[0][0]=1;
for(int i=1;i<=500;i++){
C[i][0]=1;
for(int j=1;j<=i;j++){
C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
}
}
for(int i=1;i<=T;i++)solve(i);
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...