题解—P2218 [HAOI2007]覆盖问题】的更多相关文章

一道不错的题,主要就是一个思路点,想到就行了,想不到就一直卡着. 看完题解之后发现挺简单,实际上自己挣扎半天也咩有想到. 一开始想类比成一维之后贪心,后来被同机房大佬 \(hack\) 掉了. solution 首先二分答案,单调行很好证明,因为大矩形包含小矩形,现在的问题就是 \(check\) 函数 其实一个突破口就是只用三个矩形覆盖. 一维里面用几个矩形理论上都是通过输入给出的,所以一般的题的变量他通过常量给出来,可能就是突破口. 对于题目中所有的点,肯定可以用一个大矩形套住,我们称之为"…
P2218 [HAOI2007]覆盖问题 题目描述 某人在山上种了\(N\)棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用\(3\)个\(L*L\)的正方形塑料薄膜将小树遮起来.我们不妨将山建立一个平面直角坐标系,设第i棵小树的坐标为\((X_i,Y_i)\),\(3\)个\(L*L\)的正方形的边要求平行于坐标轴,一个点如果在正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求\(L\)最小值…
传送门 首先可以想到二分答案,然后考虑判断 注意到所有点的外包矩形的四条边一定要被覆盖到,而正方形只有 $3$ 个,所以一定有一个正方形在角落 考虑爆搜,枚举正方形在当前外包矩形的那个角,然后对剩下的点的外包矩形继续这样搞 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; ty…
BZOJ 1052: [HAOI2007]覆盖问题 题意:给定平面上横纵坐标在-1e9~1e9内的20000个整数点的坐标,用三个大小相同边平行于坐标轴的正方形覆盖(在边界上的也算),问正方形的边长最小为多少?(整数) 思路:构造一个覆盖所有点的矩形,正方形的端点即为矩形的一角,这样枚举四个角的两个正方形,二分最大长度,看剩下的点是否能被第三个正方形覆盖. ps:构造矩形的思想是看了题解才想到的... #include<iostream> #include<cstdio> #inc…
BZOJ1052 [HAOI2007]覆盖问题 前言 小清新思维题. 最近肯定需要一些思维题挽救我这种碰到题目只会模板的菜鸡. 这题腾空出世? Solution 考虑一下我们二分答案怎么做? 首先转换一下,将这些点用一个尽可能小的矩形全部覆盖. 那么我们求的三个正方形一定会与这一些边有交. 然后前两个正方形直接看是和哪一个角相交.最后一个因为只剩下一个正方形,判断可行性即可. 代码实现 #include<stdio.h> #include<stdlib.h> #include<…
1052: [HAOI2007]覆盖问题 Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建 立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行与坐标轴,一个点如果在 正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求L最小值. Input 第一行有一个正整数N,表…
1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2053  Solved: 959 [Submit][Status][Discuss] Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建 立一个平面直角坐标系,设第i棵小树的坐标为(…
http://www.lydsy.com/JudgeOnline/problem.php?id=1052 首先膜拜题解orz,表示只能想到二分... 贪心就是每一次找到一个最小的能包围所有点的矩阵,然后枚举四个角放正方形. 不会证QAQ(填坑:似乎就因为正方形的边长是相等的有关?应该是的,假如只放一个正方形的中心点为(x,y),那么显然(x+L/2, y+L/2)(x-L/2, y-L/2)要覆盖所有点,显然最优的正方形的一个顶点恰好覆盖到能包围所有点的矩形中的一个角(否则无法覆盖所有点),所以…
Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行与坐标轴,一个点如果在正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求L最小值. Input 第一行有一个正整数N,表示有多少棵树.接下来有N行,第i+1行有2个整数…
Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行与坐标轴,一个点如果在正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求L最小值.Input 第一行有一个正整数N,表示有多少棵树.接下来有N行,第i+1行有2个整数X…
标题效果:特定n点.涵盖所有的点与同方三面.斧头要求方垂直边界,最小平方的需求方长值 最大值至少.答案是很明显的二分法 但验证是一个问题 考虑仅仅有三个正方形,故用一个最小矩形覆盖这三个正方形时至少有一个在角上 若有四个正方形该结论不成立 于是我们採用DFS的方式 每次用一个最小的矩形覆盖全部的点,枚举矩形的四个角 将正方形填进去 因为最大深度是3,所以时间上全然能够承受 #include<cstdio> #include<cstring> #include<iostream…
题目描述 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定 用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行 与坐标轴,一个点如果在正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求L最小值. 输入输出格式 输入格式: 第一行有一个正整数N,表示有多少棵树. 接下来有N行,第i+1行有2…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1052 大概自己YY了个贪心然后过了... 二分答案,考虑如何check: 找到一个最小的矩形使得没有覆盖过的点都在这个矩形内,然后猜一下(显然)我要选择的${L*L}$的正方形一定是和这个矩形的某一个顶点公共这个顶点的. 这就好办了,直接枚举正方形的顶点在矩形的$4$个顶点中的哪一个,搜索即可. 复杂度:${O(4^{3}n*log_{2}^{(1e9)})}$ #include<ios…
这道题的思路挺简单的……就是可以证明如果要覆盖一个区域内的点,那么一定有一个正方形在这“区域内的点所围成的最大矩形的四个角中的一个”(不要吐槽很多的“的”……),对于长度r是否可以覆盖整个区域内的点,只需要先枚举第一个矩形在“区域内的点所围成的最大矩形的四个角中的哪一个”,然后再枚举下一个点在“区域内的剩余点所围成的最大矩形的四个角中的哪一个”第三个正方形就直接判断余下的点的最大最小差值是否小于r就行了……再然后就直接二分答案了……然后,注意一种情况,就是出现一个或者两个矩形就可以覆盖完整个区域…
Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L * L的正方形塑料薄膜将小树遮起来.我们不妨将山立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行与坐标轴,一个点如果在正方形的边界上,也算作被覆盖.当然,我们希望塑料薄膜面积越小越好,即求L最小值. Input 第一行有一个正整数N,表示有多少棵树.接下来有N行,第i+1行有2个整…
1052 思路: 二分答案: 二分可能的长度: 然后递归判断长度是否可行: 先求出刚好覆盖所有点的矩形: 可行的第一个正方形在矩形的一个角上: 枚举四个角上的正方形,然后删去点: 删去一个正方形后,递归求出删去一个正方形后的矩形: 往复三次,判断三次删点能否全部删光: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespac…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1052 分析: 挺有想法的一道题,先二分答案ans,主要是判断的问题. 首先可以弄出把所有点围起来的最小矩形,那么其中一个正方形的顶点肯定在矩形的某一个顶点上(因为矩形的四条边上都有点,如果三个正方形的顶点都不在角上,那么一个正方形都只能管一条边,所以就只能管3条边,还有一条边管不了,就矛盾了.).于是可以枚举这个正方形在矩形的哪一个顶点上,把正方形内的点都删掉,然后对于剩余的图继续求…
貌似又写出了常数挺优(至少不劣)的代码>v< 930+人AC #49 写了个O(nlogn)貌似比一些人O(n)还快2333333 这题还是先二分答案,check比较麻烦 显然正方形一定以最左上或最右上或最左下或最右下的点为端点来盖,盖了一个之后再拿一个枚举剩下的点作为四个端点来盖,最后一个直接判断剩下的点能不能一次性盖就好了 #include<iostream> #include<cstring> #include<cstdlib> #include<…
水题盛宴啦啦啦……做起来真的极其舒服,比某些毒瘤题好太多了…… 数据范围极小 --> 状压 / 搜索 / 高维度dp:观察要求的均方差,开始考虑是不是能够换一下式子.我们用\(a_{x}\)来表示第 \(x\) 个矩阵的总值,则式子为: \(ans = sqrt \frac{{\left ( \sum_{1}^{n} a_{x} - \bar{x} \right )^2}}{n}\) 转化一下,化成: \(ans = sqrt \frac{{\left ( -n\bar{x}^2 + \sum_…
数学题 令 \(A_n\) 为 \(2\times n\) 的墙壁放满块的方案数,考虑递推. 显然 \(A_0=1\),我们令对于 \(k<0\),\(A_k=0\) . 放直线型的块非常好递推: 此时答案即为 \(A_{n-1}+A_{n-2}\) . 接下来考虑放 L 型块的: 显然,两个 L 型块可以并成长方形: 但是也可以通过摆几个横着的块再合并: 所以此时答案为 \(2(A_{n-3}+A_{n-4}+\cdots+A_0)\) . 把两个加起来,得到 \[\large\begin{a…
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fallen Lord(sort(a+1,a+1+n,greater<int>()); 真好用) P4161 [SCOI2009]游戏 P1707 刷题比赛 2021-10-12 CF1573A Countdown P2717 寒假作业 P7868 [COCI2015-2016#2] VUDU P1660…
二分+贪心 首先二分L,转化成判定问题…… 但是判定不会判啊QAQ orz hzwer,用一个最小的矩形框住所有点后,直接往矩形的角上摆正方形……第二个用同样的方法摆,最后判一下剩下的能否被完全覆盖 不得不说hzwer的这种实现方法很好懂…… /************************************************************** Problem: 1052 User: Tunix Language: C++ Result: Accepted Time:30…
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1052 网格图,给出\(n\)个点,要求用3个边长相同的正方形覆盖所有点,求最小边长. 分析 显然是二分+判断可行性. 如何判断可行性呢?我们注意到是3个正方形.为什么是3个? 我们先找出覆盖所有点的最小距形,那么距形的四条边必须有正方形贴着,而又是3个正方形,所以至少要有1个正方形同时贴着两条边. 1.贴着的边相对 这样的话三个正方形都同时贴着相对的两条边,比如是上下两条边,那么贴着左边的那…
贪心(qwq)习题题解 SCOI 题解 [ SCOI2016 美味 ] 假设已经确定了前i位,那么答案ans一定属于一个区间. 从高位往低位贪心,每次区间查找是否存在使此位答案为1的值. 比如6位数确定了前三位\((101...)_2\),下一位应该是1 那么\(a_i+x_i\)的查找区间为:\([(101100)_2,(101111)_2]\) ,同理如果应该是0则为\([(101000)_2,(101011)_2]\). 注意到有区间\([l,r]\)范围的限制所以用主席树维护即可. […
/** 题目:zoj3228 Searching the String 链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3441 题意:给定一个长度为N(N <= 105)的目标串,然后再给定M(M <= 105)个长度不大于6的字符串, 问这些字符串在目标串的出现次数(分可重叠和不可重叠两种). 题解:可以覆盖情况下,直接建立自动机求次数.注意可能出现类型相同以及字符串相同.所以用map标记: 不可以覆盖情况下,直接…
题目链接 BZOJ2823 题解 最小圆覆盖模板 都懒得再写一次 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<ctime> #include<cstring> #include<algorithm> #define LL long long int #define Redge(u) for (int k = h…
题解:最小路径覆盖=总点数减去最大匹配数,拆点,按照每条边前一个点连源点,后一个点连汇点跑最大流,即可跑出最大匹配数,然后减一减就可以了~ 代码如下: #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define inf 0x3f3f3f3f #define hi puts("hi"); usi…
1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2446  Solved: 1131[Submit][Status][Discuss] Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建 立一个平面直角坐标系,设第i棵小树的坐标为(X…
1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2004  Solved: 937[Submit][Status][Discuss] Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来.我们不妨将山建 立一个平面直角坐标系,设第i棵小树的坐标为(Xi…
似乎该写题解了.今天模拟ACM,10道题(本来还有2道被删了),9道都来自BZOJ,中间我做过2道.那么说,今天Solv.便大大增多了(但还是不如强大的Amphetamine). 题单及一句话题解如下: A.HDU 3652 B-number(数位DP):当时硬没有想到去存13的余数,一直想着13倍数的判断法则.最后无奈,只有打表(原则上可以AC),但是vjudge与HDU允许的cpp文件大小上限不同,导致vjudge卡打表(不想再调) B.BZOJ 4152 [AMPP2014]The Cap…