#include<iostream>
#include<cstring>
using namespace std;
int t,n,k,x,y,x1,y2,max_x,max_y,sum_s=;
//(x,y) (x1,y1)墙的两个端点,所有墙最大列坐标max_x,最大行坐标max_y,最少拆除墙面数为sum_s
int map[][];
int main()
{
scanf("%d",&t);//测试用例数
while(t--)
{
memset(map,,sizeof(map));
max_x=;
max_y=;
sum_s=;
scanf("%d %d",&n,&k);
for(int i=;i<=n;i++)
{
scanf("%d %d %d %d",&x,&y,&x1,&y2);//两个端点坐标
if(x>max_x)
max_x=x;
if(x1>max_x)
max_x=x1;
if(y>max_y)
max_y=y;//y=y2,所以只要一句
if(x<x1)//标记第i面墙
{
for(int j=x;j<=x1;j++)
map[j][y]=i;
}
else
{
for(int j=x1;j<=x;j++)
map[j][y]=i;
}
} for(int i=;i<=max_x;i++)//从左到右扫描每一列
{
int tem=;//统计第i列中墙的格子数
for(int j=;j<=max_y;j++)
{
if(map[i][j]>)
tem++;
}
int offset=tem-k;//墙多,则要拆offset面
if(offset>)
{
sum_s+=offset;
while(offset--)
{
int max_s=,max_bh;//最多的格子数,行数
for(int k=;k<=max_y;k++)//搜索第i列每个有墙的格子
{
if(map[i][k]>)//若(i,k)为有墙格,则统计k行i列右方属于同堵墙的格子数tem_s
{
int tem_s=;
for(int z=i+;z<=max_x;z++)
{
if(map[z][k]==map[i][k])
tem_s++;
}
if(max_s<tem_s)//该堵墙格子数最多,则记下
{
max_s=tem_s;
max_bh=k;
}
}
}
//拆除含格子数最多的墙(第max_bh行上第i列开始的max_s个格子)
for(int a=i;a<=i+max_s;a++)
{
map[a][max_bh]=;//拆除,不然会重复计数
}
}
}
}
printf("%d\n",sum_s);//输出最少拆除墙的面数
}
return ;
}

5.1.1

POJ 1230 Pass-Muraille的更多相关文章

  1. zoj 1375||poj 1230(贪心)

    Pass-Muraille Time Limit: 2 Seconds      Memory Limit: 65536 KB In modern day magic shows, passing t ...

  2. (贪心5.1.1)POJ 1230 Pass-Muraille

    /* * POJ_1230.cpp * * Created on: 2013年10月9日 * Author: Administrator */ #include <iostream> #i ...

  3. POJ 1230 Pass-Muraille#贪心+vector迭代器用法

    (- ̄▽ ̄)-* (注意下面代码中关于iterator的用法,此代码借鉴某大牛) #include<iostream> #include<cstdio> #include< ...

  4. POJ 2240 && ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0

    http://poj.org/problem?id=2240 用log化乘法为加法找正圈 c++ 110ms,g++tle #include <string> #include <m ...

  5. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  6. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  7. POJ 2697 A Board Game(Trie判重+BFS)

    A Board Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 551   Accepted: 373 Descri ...

  8. poj分类

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  9. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

随机推荐

  1. Django知识点汇总

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  2. HTML&javaSkcript&CSS&jQuery&ajax(11)

    1.localStorage 没有 时间的限制数据存储, sessionStorage 针对一个session的存储,首先检查浏览器是否支持对这两个的存储, ifI(type(Storage)!==& ...

  3. ShadingJdbc学习

    可参考:https://blog.csdn.net/jadebai/article/details/86716082 https://blog.csdn.net/jadebai/article/det ...

  4. JumpServer里的sftp功能报错说明

    JumpServer里sftp默认的家目录是/tmp下 修改默认家目录: vim /usr/local/coco/coco/sftp.py class SFTPServer(paramiko.SFTP ...

  5. gerrit原理

      个人理解: 这个就是审核代码是否合理性的工具,一般是资深研发人工确认代码是否存在缺陷,通过发送邮件通知变化. 也可理解为这个是个git服务器,多一个代码审查的功能. 但是它是个web界面,方便管理 ...

  6. # 20165206 2017-2018-2 《Java程序设计》第4周学习总结

    20165206 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承:继承是一种由已有的类创建新类的机制. 子类和父类:由继承得到的类称为子类,被继承的类称 ...

  7. sqoop无法导出parquet文件到mysql

    1.问题描述 在CDH集群中我们需要将Hive表的数据导入到RDBMS数据库中,使用Sqoop工具可以方便的将Hive表数据抽取到RDBMS数据库中,在使用Sqoop抽取Hive Parquet表时作 ...

  8. 读C#开发实战1200例子记录-2017年8月14日11:20:38获取汉字编码值

    try { char chr = textBox1.Text[0]; byte[] gb2312_bt = Encoding.GetEncoding("gb2312").GetBy ...

  9. C++11 中的function和bind、lambda用法

    std::function 1. std::bind绑定一个成员函数 #include <iostream> #include <functional> struct Foo ...

  10. MyBatis - 3.Mapper XML映射文件

    SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的引用. resultMap – 是最复杂也是 ...