#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. asynicio模块以及爬虫应用asynicio模块(高性能爬虫)

    一.背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是 ...

  2. 引用的作用&引用与指针的区别

    引入 C语言中函数有两种传参的方式: 传值和传址.以传值方式, 在函数调用过程中会生成一份临时变量用形参代替, 最终把实参的值传递给新分配的临时变量即形参. 它的优点是避免了函数调用的一些副作用, 但 ...

  3. springboot 集成mongodb

    环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: <dependency> <groupId>org.springframewo ...

  4. 使用python解决算法和数据结构--使用栈实现符号匹配

    现在要自己来实现这些数据结构和常用算法了. 把基础再打牢一些. 栈的作用很大,无须多言. 我尽量看了题目要求,自己来实现代码的. # coding = utf-8 class Stack: def _ ...

  5. 为什么dbms_metadata.get_ddl显示不全?

    http://bi.dataguru.cn/thread-335433-1-1.html

  6. IPMI无法执行命令

    IPMI无法执行命令 https://www.cnblogs.com/EricDing/p/8995263.html http://www.cnblogs.com/heidsoft/p/4014301 ...

  7. 安装和强行卸载fuse

    先卸载 yum list fuse yum --setopt=tsflags=noscripts remove fuse.x86_64 安装 yum install automake gcc-c++ ...

  8. Comparison of several types of convergence

    In functional analysis, several types of convergence are defined, namely, strong convergence for ele ...

  9. hibnet 自动生成表格

    在pom文件中添加相关的依赖 在application.yml文件中添加配置信息 新建实体类Boy 项目运行,mysql就产生了一个boy表. 需要注意的是:当配置文件ddl-auto: create ...

  10. html5的audio实现高仿微信语音播放效果Demo

    HTML部分: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...