链接:https://codeforces.com/contest/1269/problem/D

题意:给一个不规则的网格,在上面放置多米诺骨牌,多米诺骨牌长度要么是1x2,要么是2x1大小,问最多放置多米诺骨牌的数量。

思路:首先这是一个结论题,对每个方格进行染色,一个方格染黑色,周围邻近的就染白色,答案就是黑色方格数量和白色方格数量的最小值。这个结论可以用二分图进行证明:把问题抽象成最大二分图匹配,每两个点之间连一条边。一个格子和周围格子连一条边,如果一个格子周围的还没被匹配,那么匹配数+1。如果一个格子周围已经全部被匹配完,那么该格子可以增广到任意一个为匹配位置,匹配数+1。所以只要在另一种颜色格子数量充沛的情况下,每一次匹配都能对匹配数贡献1,所以答案就是两种颜色的最小值。

AC代码:

 #include<iostream>
#include<string>
#include<vector>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
ll mod = 1e9+;
const int maxn = 2e5+;
struct node{
int dif;
int ti;
}g[maxn];
bool cmp(node a,node b){
if(a.ti !=b.ti ) return a.ti<b.ti ;
return a.dif <b.dif ;
}
bool check(ll x){
for(int i = ;i<=sqrt(x);i++){
if(x%i == ) return true;
}
return false;
}
int main(){
ll black = , white = ;
int n;cin>>n;
int cur = ;
for(int i = ;i<n;i++){
ll a ;cin>>a;
if(cur == ){
black +=(a/+a%);
white +=a/;
cur = ;
}
else{
cur = ;
black +=a/;
white +=(a/+a%);
}
}
ll ans = min(black,white);
cout<<ans;
return ;
}

最新文章

  1. bootstrap-popover的配置与灵活应用
  2. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
  3. 带你玩转JavaWeb开发之三 - CSS从基础到实战
  4. AVL树模板
  5. HTML5中script的async属性异步加载JS
  6. NSDate简单介绍
  7. Nmap扫描原理与用法
  8. javascript 中的new操作符的理解
  9. DataGridView减少闪烁的解决办法
  10. JFrame画图基础和事件监听
  11. iOS开发之protocol和delegate
  12. 环信 之 iOS 客户端集成三:基础功能
  13. 监控c3p0的连接池
  14. weex用阿里矢量图
  15. day2作业(基本数据类型,语法)
  16. Ubuntu修改apt-get源
  17. rpm安装MySQL5.5后配置,在centos5上;mysql编译安装在centos6.5上;
  18. mvc4 初体验(一)
  19. js写的一个HashMap
  20. 修改Python IDLE代码配色及语法高亮主题

热门文章

  1. if、counf、countif、countifs、sumif、sumifs
  2. ES读写数据过程及原理
  3. sip 常见问题和总结
  4. Django中非视图函数获取用户对象
  5. 使用_slots_变量限制class实例能添加的属性
  6. Ubuntu 16 服务器配置PHP+MySQL+Apache环境
  7. Vue组件库新增的prop属性类型是Object或者Array时默认值的设置
  8. IP地址分类及其相关计算问题
  9. Graph Regularized Feature Selection with Data Reconstruction
  10. H5手机端开发问题及解决方案