https://codeforces.com/gym/323862/problem/G
先算出来总数,再减去含有炸弹的
可以用容斥定理
含有炸弹的=仅含有一个的-含有两个的+含有三个的-……
要计算几个集合并集的大小,
我们要先将所有单个集合的大小计算出来,
然后减去所有两个集合相交的部分,
再加回所有三个集合相交的部分,
再减去所有四个集合相交的部分,
依此类推,
一直计算到所有集合相交的部分。

#include<bits/stdc++.h>
using namespace std;
const long long maxn=1e4+5;
const long long minn=-1;
struct node{long long x,y;
};
node nd[30];
void solve(){long long minx,miny,maxx,maxy;long long n,m,k;long long ans=0;cin>>n>>m>>k;for(int i=1;i<=k;i++){cin>>nd[i].x>>nd[i].y;}ans=(n*(n+1)/2)*(m*(m+1)/2);for(int i=1;i<(1<<k);i++){//初始化maxx=minn;maxy=minn;minx=maxn;miny=maxn;int t=i;int cnt=0;int num=0;while(t){num++;if(t&1){cnt++;maxx=max(maxx,nd[num].x);maxy=max(maxy,nd[num].y);minx=min(minx,nd[num].x);miny=min(miny,nd[num].y);//此处注意不要用cnt做下标//cnt是检测到一个炸弹就+1//}t>>=1;}if(cnt){ans-=(cnt&1?1:-1)*minx*miny*(n-maxx+1)*(m-maxy+1);//容斥定理,有奇数炸弹的情况加,偶数炸弹的情况减}}cout<<ans<<endl;return;
}
int main(){int t;cin>>t;while(t--){solve();}return 0;
}

G-Snake Rana相关推荐

  1. GYM 101350 G. Snake Rana ( 容斥

    G. Snake Rana 题目描述 Old Macdonald wants to build a new hen house for his hens. He buys a new rectangu ...

  2. 2017 ACM Arabella Collegiate Programming Contest G. Snake Rana GYM101350G

    先算一下总的子矩阵个数 总共最多只有20个点 状压一下然后枚举 容斥一下 把求出来的答案减去包含1个点的子矩阵再加上包含2个点的减去3个点的-- #include <iostream> # ...

  3. G. Snake Rana 容斥原理

    题意: 统计网格矩形的子矩形数目,其中要求每个格子不能包含一些特殊格子(特殊格子小于20) 思路:统计格子是个老问题,sum=n*(n+1)/2*m*(m+1)/2 这里要求一些格子不合法,显然用总答 ...

  4. Snake Rana (容斥定理)

    Snake Rana     Gym - 101350G https://cn.vjudge.net/contest/303719#problem/B 题目大意:给定一个矩阵,和矩阵中的一些点,求矩阵 ...

  5. Snake Rana Gym - 101350G

    题目: Old Macdonald wants to build a new hen house for his hens. He buys a new rectangular area of siz ...

  6. 容斥原理·Gym101350G·Snake Rana

    题目大意:n*m的矩阵问不包含炸弹的子矩阵总数: 解题思路: 奇加偶减容斥. AC代码: #include <iostream> #include <cmath> #inclu ...

  7. 2017 ACM Arabella Collegiate Programming Contest div2的题,部分题目写个题解

    F. Monkeying Around   维护点在多少个线段上 http://codeforces.com/gym/101350/problem/F 题意:有m个笑话,每个笑话的区间是[L, R], ...

  8. SDUT 2021 Spring Individual Contest(for 20) - 1

    文章目录 A - Sherlock Bones B - Unusual Team C - Cheap Kangaroo D - Magical Bamboos E - Competitive Seag ...

  9. 【容斥】2017 ACM Arabella Collegiate Programming Contest

    比赛连接 G. Snake Rana Old Macdonald wants to build a new hen house for his hens. He buys a new rectangu ...

  10. 2017 ACM Arabella Collegiate Programming Contest(solved 9/13, complex 12/13)

    A.Sherlock Bones 题意: 给出长度为n的01串,问f(i,j)=f(j,k),(i<j<k)的i,j,k取值种数.其中f(i,j)表示[i,j]内1的个数, 且s[j]必须 ...

最新文章

  1. 简单的 H5 视频推流解决方案
  2. 背景和文字分离的matlab实现
  3. I see IC的破冰之旅
  4. Struts1和Struts2的区别和对比(完整版)(转)
  5. 宝塔面板 mongodb 允许外网访问
  6. 有时间同情渣男傻女,不如想想人都是怎么被臆想出来的爱情给坑了
  7. java面向对象内存分析
  8. 货物贸易外汇监测系统 企业版_能源在线监测系统对用能企业的优势
  9. 【转】网络安全-------防止被抓包
  10. cesium 基于在vue框架写功能
  11. 红米6 Pro开启ROOT权限的教程
  12. # Idea,2.5,软件安装,提示If you already have a 64-bit JDK installed ,defined a JAVA_HOME variable in Compu
  13. linux看caj文件格式,CAJ 文件扩展名: 它是什么以及如何打开它?
  14. 攻防比赛中蓝队常用的攻击方法
  15. App版本更新接口的设计
  16. 【054】七麦数据-应用商店中详细的应用大数据
  17. ●UVA 11021 tunnello
  18. 【致青春】奋斗迷茫的我们
  19. GUEST帐号“反客为主”
  20. MATLAB 暖通,MATLAB在暖通空调课程教学中的应用

热门文章

  1. 每天学习一个知识点,每天进步一点
  2. 游戏笔记本计算机购买,2021年4月|游戏笔记本电脑选购,个人主观推荐
  3. android 大学生生活助手,基于Android的大学生生活小助手设计与开发.doc
  4. [置顶] 当前上下文不存在 ScriptManager 的原因分析以及解决方案 (System.Web.Extensions)...
  5. 基于graph的图像分割算法:Efficient Graph-Based Image Segmentation
  6. ElasticSearch教程——基于term vector深入探查数据的情况
  7. 同等学力申硕英语考试2021年备考策略
  8. linux红旗内核升级,在红旗Linux 11中用Ubuntu的kernel-ppa包升级内核
  9. 谷歌性能测评工具lighthouse使用
  10. MyBatis 框架基础