codeforces#1228E. Another Filling the Grid(容斥定理,思维)
题目链接:
https://codeforces.com/contest/1228/problem/E
题意:
给n*n的矩阵填数,使得每行和每列最小值都是1
矩阵中可以填1到$k$的数
数据范围:
$1\leq n \leq 250$
$1\leq k \leq 250$
分析:
参考博客:https://www.cnblogs.com/scx2015noip-as-php/p/cf589e.html
先预处理出f(x)代表x*n的矩阵,每列最小值是1的填充方案数
以下讨论的方案数,列的最小值一定是1
ans=随便填-第一行没有1-第二行没有1-第三行没有1-第n行没有1+第一二行没有1+第二三行没有1......
也就是对行的方案容斥
因为第一行没有1和第二行没有1的方案可能重复了,所有多减了一些方案数
$ans = \sum\limits_{i=0}^n (-1)^i C_n^i (k-1)^{ni} f(n-i)$
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=250+7;
const int mod=1e9+7;
ll A[maxn],invA[maxn],f[maxn];
ll qpow(ll x,ll y){
ll res=1;
while(y){
if(y&1)res=x*res%mod;
x=x*x%mod;
y/=2;
}
return res;
}
int main()
{
int n,k;
A[1]=invA[1]=A[0]=invA[0]=1;
for(int i=2;i<maxn;i++){
A[i]=A[i-1]*i%mod;
invA[i]=invA[i-1]*qpow(i,mod-2)%mod;
}
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++)
f[i]=qpow((qpow(k,i)-qpow(k-1,i)+mod)%mod,n);
ll res,ans=0;
for(int i=0;i<n;i++){
if(i%2==0)res=1;
else res=-1;
res=res*f[n-i];
res=res*qpow(k-1,n*i)%mod;
res=res*A[n]%mod*invA[i]%mod*invA[n-i]%mod;
ans=(ans+res+mod)%mod;
}
printf("%lld\n",ans);
return 0;
}
codeforces#1228E. Another Filling the Grid(容斥定理,思维)的更多相关文章
- [Codeforces 1228E]Another Filling the Grid (排列组合+容斥原理)
[Codeforces 1228E]Another Filling the Grid (排列组合+容斥原理) 题面 一个\(n \times n\)的格子,每个格子里可以填\([1,k]\)内的整数. ...
- [Codeforces 1228E]Another Filling the Grid(组合数+容斥)
题目链接 解题思路: 容斥一下好久可以得到式子 \(\sum_{i=0}^{n}\sum_{j=0}^{n}(-1)^{i+j}C_n^iC_n^j(k-1)^{ni+nj-ij}k^{n^2-(ni ...
- Codeforces 1228E. Another Filling the Grid
传送门 看到 $n=250$ 显然考虑 $n^3$ 的 $dp$ 设 $f[i][j]$ 表示填完前 $i$ 行,目前有 $j$ 列的最小值是 $1$ 的合法方案数 那么对于 $f[i][j]$ ,枚 ...
- Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理
B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...
- HDU 2841 Visible Trees(容斥定理)
Visible Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- hdu_5213_Lucky(莫队算法+容斥定理)
题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1<=xi<=r ...
- How Many Sets I(容斥定理)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3556 How Many Sets I Time Limit: 2 ...
- HDU - 4135 Co-prime 容斥定理
题意:给定区间和n,求区间中与n互素的数的个数, . 思路:利用容斥定理求得先求得区间与n互素的数的个数,设表示区间中与n互素的数的个数, 那么区间中与n互素的数的个数等于.详细分析见求指定区间内与n ...
随机推荐
- Eclipse下使用Maven创建项目出现的archetype错误,记,转
记自:http://blog.csdn.net/ZhuboSun/article/details/50099635 [1]出现的错误提示: Unable to create project from ...
- Java Web-JQuery学习
Java Web-JQuery学习 JQuery概念 是一个JS框架,可以用来简化JS的开发,设计宗旨是"write less,do more",即写更少的代码,做更多的事情.它封 ...
- restTemplate源码解析(目录)
restTemplate是spring实现的,基于restful风格的http请求模板.使用restTemplate可以简化请求操作的复杂性,同时规范了代码风格.本系列文章,将根据以下目录顺序,从源码 ...
- Django学习笔记(二)App创建之Model
通过实例学习, 构建一个投票(Polls)Application, 目标结果包含两个site, 一个site用来显示投票问题以及投票结果(即将展示出来的网站), 另一个site用来管理Poll实例的增 ...
- SMARTY的知识
smarty的原理: <?php class Smarty { $ldelimiter = "{";//左分隔符 $rdelimiter = "}";// ...
- java基础点
1.eclipse什么时候编译java类文件 2.在同一包中的类可以相互引用,无需用import语句 3.在Java eclipse用ALT输入特殊符号 4.if else等语句,什么时候可以不加括号 ...
- 【转载】解密ThreadLocal
概述 相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路:ThreadLocal的目的是为了解决多线程访问资 ...
- LVS实现健康性检查功能
LVS高可用性 Director不可用,整个系统将不可用:SPoF Single Point of Failure 解决方案:高可用 keepalived heartbeat/corosync 某RS ...
- Linux proc filesystem (procfs)
参考:/proc /proc简介 本文着重关注/proc目录,查看其中文件并熟悉它. /proc目录存在于所有Linux系统上,无论什么发行版或体系结构.首先,必须澄清一个误解: 就文件系统这一术语而 ...
- Windows Server 2008 用户管理
默认用户和组 默认用户 默认只有来宾用户(Guest)和管理员(Administrator) 默认组 创建账户 图形界面创建用户 创建用户选项解析 对于公司新员工,分配给他的电脑,应该让其有一定的自主 ...