博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihocoder [Offer收割]编程练习赛8 矩形计数
阅读量:6278 次
发布时间:2019-06-22

本文共 1098 字,大约阅读时间需要 3 分钟。

考虑k比较小,想到容斥原理,枚举,容斥求和。

 

//http://www.cnblogs.com/IMGavin/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;#define gets(A) fgets(A, 1e8, stdin)const int INF = 0x3F3F3F3F, N = 1008, MOD = 1003;const double EPS = 1e-6;int x[N], y[N];int tot;int r[N], c[N], n, m, k;LL ans;void dfs(int d, int cnt, int x1, int y1){ if(d == tot){ if(cnt & 1){ ans -= x1 * y1; }else{ ans += x1 * y1; } return ; } dfs(d + 1, cnt, x1, y1); dfs(d + 1, cnt + 1, min(x1, x[d]), min(y1, y[d]));}int main(){ while(cin >> n >> m >> k){ for(int i = 0; i < k; i++){ scanf("%d %d", &r[i], &c[i]); } ans = 0; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ tot = 0; bool ok = 1; for(int l = 0; l < k; l++){ if(i == r[l] && j == c[l]){ ok = 0; break; } if(i >= r[l] && j >= c[l]){ x[tot] = r[l]; y[tot] = c[l]; tot++; } } if(ok){ dfs(0, 0, i, j); } } } cout<
<

  

转载于:https://www.cnblogs.com/IMGavin/p/6505755.html

你可能感兴趣的文章
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>