题目链接:传送门

题意:

n个格子排成一行。我们有m种颜色。能够给这些格子涂色,保证相邻的格子的颜色不同

问,最后恰好使用了k种颜色的方案数。

分析:

看完题目描写叙述之后立刻想到了一个公式 :C(m,k)*k*(k-1)^(n-1),可是细致分析了一下

这个公式的含义是相邻的格子颜色不同,使用的颜色总数小于等于k的方案数,可是这个

公式能够帮忙我们衍生出来以下的公式。C(k,x)*x*(x-1)^(n-1),这个公式的含义是在这

k种颜色中再选出来x种使得相邻的格子不同色最后的颜色数小于等于x,然后每个集合

都有交们我们能够考虑用容斥来搞一下。

设 S = F[x]=C(k,x)*x*(x-1)^(n-1);

ans = C(m,k) * sigma{ (-1)^(k-i) * C(k,i) * i *(i - 1)^(n-1)} (1 <= i <= k)

代码例如以下:

#include <iostream>
#include <cstring>
#include <cstdio> using namespace std; typedef long long LL; const LL mod = 1e9+7; const int maxn = 1e6+10; LL n,m,k; LL c[maxn],inv[maxn]; LL quick_mod(LL a,LL b){
LL ans=1;
while(b){
if(b&1) ans=ans*a%mod;
b>>=1;
a=a*a%mod;
}
return ans ;
} inline LL get_inverse(LL x){ //(a/b) % c = a*inv[b] %c if(c is a prime number) inv[b] = (b^(c-2))%c;
return quick_mod(x,mod-2);
} void init(){//将[1,1e6+10]的逆元预处理出来
for(LL i=1;i<maxn;i++)
inv[i]=get_inverse(i);
} void get_combine(LL n){//得到组合数
c[0]=1;
for(LL i=1;i<=k;i++){
c[i]=(c[i-1]*(n-i+1)%mod)*inv[i]%mod;
}
} inline LL calc(LL x){// x*C(k,x)*(x-1)^(n-1)
return (c[x]*x%mod)*quick_mod(x-1,n-1)%mod;
} int main(){
init();
int t,cas=1;
scanf("%d",&t);
while(t--){
scanf("%lld%lld%lld",&n,&m,&k);
get_combine(m);
LL ans = c[k],ans1=0,tag=1;
get_combine(k);
for(LL i=k;i>=1;i--){
ans1=(ans1+tag*calc(i)+mod)%mod;
tag=-tag;
}
ans=ans*ans1%mod;
printf("Case #%d: %lld\n", cas++, ans);
}
return 0;
}

2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)的更多相关文章

  1. 2014ACM/ICPC亚洲区西安站现场赛 F color(二项式反演)

    题意:小球排成一排,从m种颜色中选取k种颜色给n个球上色,要求相邻的球的颜色不同,求可行的方案数,答案模1e9+7.T组数据,1<= n, m <= 1e9, 1 <= k < ...

  2. 2014ACM/ICPC亚洲区西安站 复旦命题

    http://codeforces.com/gym/100548 A 签到 问一个序列是不是yes,yes的序列满足每个数都是3的倍数. #include<cstdio> int main ...

  3. 2014ACM/ICPC亚洲区鞍山站 清华命题

    A http://acm.hdu.edu.cn/showproblem.php?pid=5070 先跳过. B http://acm.hdu.edu.cn/showproblem.php?pid=50 ...

  4. 2014ACM/ICPC亚洲区牡丹江站 浙大命题

    A  Average Score http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5373 a班有n个人,b班有m个人,bob在a ...

  5. 2016 ACM/ICPC亚洲区大连站 F - Detachment 【维护前缀积、前缀和、二分搜索优化】

    F - Detachment In a highly developed alien society, the habitats are almost infinite dimensional spa ...

  6. HDU 5127.Dogs' Candies-STL(vector)神奇的题,set过不了 (2014ACM/ICPC亚洲区广州站-重现赛(感谢华工和北大))

    周六周末组队训练赛. Dogs' Candies Time Limit: 30000/30000 MS (Java/Others)    Memory Limit: 512000/512000 K ( ...

  7. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  8. 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

    http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...

  9. (HDU 5558) 2015ACM/ICPC亚洲区合肥站---Alice's Classified Message(后缀数组)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5558 Problem Description Alice wants to send a classi ...

随机推荐

  1. Eclipse用法和技巧一:还原视图和编辑器

    链接地址:http://blog.csdn.net/maybe_windleave/article/details/8763744 在实际使用eclipse过程中,由于经常关闭或者打开视图,某一刻你会 ...

  2. QT_opengl_gluPerspective没有定义的处理方法

    原地址:http://blog.sina.com.cn/s/blog_6b11cdda0101fe27.html 例如: gluPerspective( 45.0, (GLfloat)width/(G ...

  3. uva 147 Dollars(完全背包)

    题目连接:147 - Dollars 题目大意:有11种硬币, 现在输入一个金额, 输出有多少种组成方案. 解题思路:uva 674 的升级版,思路完全一样, 只要处理一下数值就可以了. #inclu ...

  4. 中国本土管理咨询公司排名TOP50

    中国本土管理咨询公司排名TOP50 1. 北京正略钧策管理顾问有限公司 2. 北京和君咨询公司 3. 北大纵横管理咨询公司 4. 远卓管理顾问公司 5. AMT管理咨询公司 6. 华夏基石管理咨询有限 ...

  5. Problem B: Ternarian Weights

    大致题意:使用三进制砝码采取相应的措施衡量出给定的数字主要思路:三进制,如果 大于 2 向前进位,之前一直没写好放弃了,这次终于写好了…… #include <iostream> #inc ...

  6. [置顶] strcpy和memcpy的区别

    strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容,还会复制字符串的结束符. 已知strcpy函数 ...

  7. iOS基本控制-UINavigationController 传统的价值观,代理传统价值观,正向传统价值观,反传统的价值观

    /*        程序过程:  1.创建一个根视图,一个二级视图  2,根视图NavigationItem.title = Root 二级视图NavigationItem.title = Secon ...

  8. VS2005 MFC 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)

    当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal err ...

  9. 14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory

    14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory 创建一个File-Per-Table Tablespace ...

  10. mysql dump 参数

    mysql dump 参数: -R, --routines Dump stored routines (functions and procedures). 备份 函数和存储过程: -E, --eve ...