POJ 1230 Pass-Muraille
#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的更多相关文章
- zoj 1375||poj 1230(贪心)
Pass-Muraille Time Limit: 2 Seconds Memory Limit: 65536 KB In modern day magic shows, passing t ...
- (贪心5.1.1)POJ 1230 Pass-Muraille
/* * POJ_1230.cpp * * Created on: 2013年10月9日 * Author: Administrator */ #include <iostream> #i ...
- POJ 1230 Pass-Muraille#贪心+vector迭代器用法
(- ̄▽ ̄)-* (注意下面代码中关于iterator的用法,此代码借鉴某大牛) #include<iostream> #include<cstdio> #include< ...
- 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 ...
- POJ 题目分类(转载)
Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...
- (转)POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. ...
- POJ 2697 A Board Game(Trie判重+BFS)
A Board Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 551 Accepted: 373 Descri ...
- poj分类
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
随机推荐
- 初识dubbo
1. 为什么需要 Dubbo(摘自http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) 随着互联网的发展,网站应用的规模不断扩大,常规的垂 ...
- 【sqli-labs】Less11~Less16
学习sqli-labs的笔记,前面的笔记内容比较详细.后面的只记录关键点了. Less11: POST注入, 有回显,有错误提示 从11题起是POST注入,发现有两个输入框.用firefox的F12查 ...
- bzoj2973转移矩阵构造法!
/* 构造单位矩阵(转移矩阵) 给定n*m网格,每个格子独立按照长度不超过6的操作串循环操作 对应的操作有 0-9:拿x个石头到这个格子 nwse:把这个格子的石头推移到相邻格子 d:清空该格石子 开 ...
- hive sql常用整理-hive引擎设置
遇到个情况,跑hive级联insert数据报错,可以尝试换个hive计算引擎 hive遇到FAILED: Execution Error, return code 2 from org.apache. ...
- 修改Tomcat默认连接数
<Connector port=" protocol="HTTP/1.1" connectionTimeout=" redirectPort=" ...
- luogu P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
题解: 二维凸包裸题 按照x坐标为第一关键字,y坐标为第二关键字排序 然后相邻判断叉积用单调队列搞过去 正反都做一次就好了 代码: #include <bits/stdc++.h> usi ...
- C# 之 数字格式化
格式规范的完整形式:{index [,width][:formatstring]} index是此格式程序引用的格式字符串之后的参数,从零开始计数:width(可选) 是要设置格式的字段的宽度,wid ...
- pycharm中出现的错误
错误1 在pycharm上安装TensorFlow运行import tensorflow时报错: File , in _find_and_load SystemError: PyEval_EvalFr ...
- Thinkphp3.1 php 链接SqlServer
ThinkPHP链接 M("lk_employeeInfo","Null/表前缀","sqlsrv://账号:密码@服务器:端口/数据库") ...
- BZOJ2821 作诗(Poetize) 主席树 bitset
原文链接https://www.lydsy.com/JudgeOnline/problem.php?id=2821 题目传送门 - BZOJ2821 题意 $n$ 个数,$m$ 组询问,每次问 $[l ...