题目链接

题意:给定一个n*m的矩阵,可以选择至多两个子矩阵将其反转,求能形成多少种不同的矩阵。

任选一个矩阵有$C_{n+1}^{2}C_{m+1}^{2}$种方法,任选两个不同的矩阵有$C_{C_{n+1}^{2}C_{m+1}^{2}}^{2}$种方法,但其中有重复的,需要去重。

重复的情况一共有以下四种:

第一种,两矩阵拼合成一个矩阵,这样的图形有$C_{n+1}^{2}C_{m+1}^{2}$个,重复度(出现的次数)为(n+m-2)

第二种,形成的两个矩阵在同一行或同一列,有$C_{n+1}^{4}C_{m+1}^{2}+C_{n+1}^{2}C_{m+1}^{4}$个(任选四行两列或两行四列)

第三种,L字形,有$4C_{n+1}^{3}C_{m+1}^{3}$个(任选三行三列+四种位置)

第四种,两矩阵对角,有$2C_{n+1}^{3}C_{m+1}^{3}$个(同上)

第二、三、四种的重复度均为3。

其余情况的重复度为1。

最后还要加上原矩阵的贡献,即答案要加上1。

所以答案为$C_{C_{n+1}^{2}C_{m+1}^{2}}^{2}-(n+m-3)C_{n+1}^{2}C_{m+1}^{2}-2(C_{n+1}^{4}C_{m+1}^{2}+C_{n+1}^{2}C_{m+1}^{4}+6C_{n+1}^{3}C_{m+1}^{3})+1$

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m;
ll C(ll n,ll m) {ll ret=; for(ll i=; i<=m; ++i)ret=ret*(n-i+)/i; return ret;}
int main() {
while(scanf("%lld%lld",&n,&m)==) {
printf("%lld\n",C(C(n+,)*C(m+,),)-(C(n+,)*C(m+,)*+C(n+,)*C(m+,)+C(n+,)*C(m+,))*-C(n+,)*C(m+,)*(n+m-)+);
while(n--)scanf("%*s");
}
return ;
}

HDU - 6513 Reverse It (SYSU校赛C题)(组合数学+容斥)的更多相关文章

  1. HDU - 6521 Party (SYSU校赛K题)(线段树)

    题目链接 题意:n个人排成一列,一开始他们互不认识,每次选[l,r]上的人开party,使他们互相认识,求出每次party之后新互相认识的人的对数. 思路:把“互相认识”变成单向连边,只考虑左边的人对 ...

  2. 15ecjtu校赛1006 (dfs容斥)

    Problem Description 在平面上有一个n*n的网格,即有n条平行于x轴的直线和n条平行于y轴的直线,形 成了n*n个交点(a,b)(1<=a<=n,1<=b<= ...

  3. PKU2018校赛 H题 Safe Upper Bound

    http://poj.openjudge.cn/practice/C18H 题目 算平均数用到公式\[\bar{x}=\frac{x_1+x_2+x_3+\cdots+x_n}{n}\] 但如果用in ...

  4. HDU 5768Lucky7(多校第四场)容斥+中国剩余定理(扩展欧几里德求逆元的)+快速乘法

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=5768 Lucky7 Time Limit: 2000/1000 MS (Java/Others)    M ...

  5. 2018WFU校赛B题

    我们在ACM的题目中已经了解了什么是ACM了,ACM还是很残酷的了(ಥ _ ಥ),那么现在你就要解决一个ACM最简单的题了,简单到省赛和区域赛都不会出这种简单的题.ls很强,即使每年都在ACM这个大坑 ...

  6. HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)

    题目地址:HDU 4970 先进行预处理.在每一个炮塔的火力范围边界标记一个点. 然后对每一个点的伤害值扫一遍就能算出来. 然后在算出每一个点到终点的总伤害值,并保存下来,也是扫一遍就可以. 最后在询 ...

  7. HDU 4968(杭电多校#9 1009题)Improving the GPA (瞎搞)

    题目地址:HDU 4968 这题的做法是全部学科的学分情况枚举,然后推断在这样的情况下是否会符合平均分. 直接暴力枚举就可以. 代码例如以下: #include <cstring> #in ...

  8. 福建工程学院第十四届ACM校赛J题题解

    第六集,想不到你这个浓眉大眼的都叛变革命了 题意: 给你两个只包含01的字符串S和T,问你在允许一次错误的情况下,T是否能成为S的子串 思路: 这个问题的解法挺多,我是用fft匹配的,也比较简单,针对 ...

  9. 校赛E题递归形式

    #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; ][]; ,,, ...

随机推荐

  1. share point CSOM 客户端模式 创建表 增删改查

    需要引用:Microsoft.SharePoint.Client ascx: <h4>CSOM所有表名</h4> <table> <tr> <td ...

  2. java代码实现JVM栈溢出,堆溢出

    参考博客:http://www.cnblogs.com/tv151579/p/3647238.html 背景知识: 栈存放什么:栈存储运行时声明的变量——对象引用(或基础类型, primitive)内 ...

  3. sa learning

    后缀数组之前一直在给队友搞,但是这个类太大了,预感到青岛八成会有,于是自己也学习一下,记录一下做题的历程 所用的模板暂时来自于队友的倍增nlogn da算法 int t1[maxn] , t2[max ...

  4. 自定义ajax

    // 动态添加script获取里面的数据,,可实现跨域,不跨的当然也可以 getFile:function(params){ try{ //创建script标签 var cbName=params.c ...

  5. django框架搭建web服务

    一.工具 环境:windows 7 python 2.7.7     下载地址:https://www.python.org/downloads/release/python-2713/   ps:这 ...

  6. HtmlAgilityPach基本使用方法

    //过滤html标签 static void InnerText() { HtmlWeb htmlWeb = new HtmlWeb(); HtmlDocument doc = htmlWeb.Loa ...

  7. Unity教程之-UGUI一个优化效率小技巧

    无意间发现了一个小技巧.如下图所示,可以发现UGUI的Image组件的RaycastTarget勾选以后会消耗一些效率,为了节省效率就不要勾选它了,不仅Image组件Text组件也有这样的问题. 一般 ...

  8. LabVIEW之生产者/消费者模式--队列操作

    LabVIEW之生产者/消费者模式--队列操作 彭会锋 本文章主要是对学习LabVIEW之生产者/消费者模式的学习笔记,其中涉及到同步控制技术-队列.事件.状态机.生产者-消费者模式,这几种技术在在本 ...

  9. MFC sendmessage实现进程间通信

    用sendmessage实现进程间通信. 1.WM_COPYDATA实现进程间通信 实现方式是发送WM_COPYDATA消息. 发送程序: LRESULT copyDataResult; //copy ...

  10. ASP.NET MVC添加Action就找不到

    这个诡异的bug困扰我好多回了,今天又碰到了,就把它记录下来吧. 不要随便改变web项目的编译路径 Output让它保持原样就好了...