首页 > 其他分享 >【题解】洛谷 P1003 [NOIP2011 提高组] 铺地毯

【题解】洛谷 P1003 [NOIP2011 提高组] 铺地毯

时间:2023-10-03 12:22:20浏览次数:44  
标签:洛谷 NOIP2011 int 题解 cin y1 x1 地毯

原题链接

解题思路

如果直接按照题意开一个二维数组来模拟每个点最上面的地毯编号,会发现所占空间最坏情况下约为 (2*105)2*4B=4*1010*4B=1.6*1011B≈149GB,程序完全无法运行。

但实际上没有必要将每一个点的信息记录下来,只需要记录每一块地毯能覆盖哪些点,再依次判断哪那些地毯可以覆盖所求的点,输出最后一个符合此要求的地毯编号就可以了。时间复杂度 O(n),可以通过此题。

注意:如果把所有的地毯都找完了还是没发现能覆盖所求的点的地毯,就要输出-1。

代码实现

#include<bits/stdc++.h>
using namespace std;
const int N = 10005;
int n, x, y;
struct node {
	int x1, y1;
	int x2, y2;
} m[N];
int main() {
	cin >> n;
	for (int i = 1; i <= n; i ++) {
		int a, b, g, k;
		cin >> a >> b >> g >> k;
		m[i].x1 = a, m[i].y1 = b;
		m[i].x2 = a + g, m[i].y2 = b + k;
	}
	cin >> x >> y;
	for (int i = n; i; i --)
		if (x >= m[i].x1 && x <= m[i].x2 && y >= m[i].y1 && y <= m[i].y2) {
			cout << i << endl;
			return 0;
		}
	puts("-1");
	return 0;
}

 

标签:洛谷,NOIP2011,int,题解,cin,y1,x1,地毯
From: https://www.cnblogs.com/vectorSpace-blog/p/17740964.html

相关文章

  • 「题解」Codeforces Round 894 (Div. 3)
    A.GiftCarpetProblem题目Sol&Code签到题#include<bits/stdc++.h>#defineN21typedeflonglongll;intmin(inta,intb){returna<b?a:b;}intmax(inta,intb){returna>b?a:b;}intT,n,m,a[4];std::strings[N];i......
  • T2回家(home)题解
    T2回家(home)现在啥也不是了,虽然会了逆元,但是对期望概率题还是一窍不通,赛时相当于只推出了\(n=1\)的情况,结果运用到所有情况,理所应当只有20分。题目描述小Z是个路痴。有一天小Z迷路了,此时小Z到家有NN个单位长度。小Z可以进行若干次行动,每次行动小Z有\(\frac12\)的概率向......
  • [ARC035B] アットコーダー王国のコンテスト事情 题解
    前置芝士排列组合分析明显的贪心,第一问与此题思路相似,优先选择做时间少的,可以尽可能让后面的罚时尽量的小。难点在第二问,第二问问的是有几种可能性,有个显然的结论:相同做题时间的题目,位置调换答案仍然相同。那么可以用桶+排列组合来解决:用桶储存这个做题时间的出现次数\(b......
  • AT_abc321_f 题解
    #思路简单动态规划,$dp_i$指当前操作后取和为$i$的球的方案数,每次输出$dp_K$即可。需要注意的是对于每次`+x`操作,计算$dp$数组时要倒着循环。时间复杂度:$O(QK)$。#代码```cpp#include<bits/stdc++.h>usingnamespacestd;longlongdp[5010];intmain(){ longlon......
  • RDP远程登录后全屏,本地的任务栏始终显示的问题解决
    文章目录问题解决参考问题RDP远程登录后全屏,本地的任务栏(TaskBar)始终在下面,遮住了远程桌面的最下面,进行了解决。解决BestsolutionhowtohidelocalTaskbarwhenRDPtoaremotedesktopLaunchTaskManagerRight-click“WindowsExplorer”Select“Restart”Itworkson......
  • CodeForces-1276#B 题解
    正文这是样例1第1组数据的图。让我们观察一下,路径1->6、1->7、2->6、2->7是可行的,所以答案为4。上述路径中好像点4没有贡献?再看看样例1第2组数据的图。发现点1和点4相互之间存在其他路径,无需经过点\(a\)和点\(b\)。综上,我们可以知道:在\(a\)和\(b\)......
  • 洛谷5343总结
    这题我们很容易想出一个状态,设f[i][j]表示前i个长度划分长度为j的块的总方案然后我们自信的写出\(f[i][j]=f[i-1][j]+f[i][j-a[i]]\)但这其实是错的!这跟背包很想,+f[i][j-a[i]]这一项的本质是说这个长度为j的块的最后一段的长度是a[i],但其实最后一段的长度是不定的,所以我们可以写......
  • AT_abc279_g [ABC279G] At Most 2 Colors 题解
    题解\(dp[i]\)表示长度为i的格子的合法涂色数,考虑第\(i\)个怎么放第\(i\)个前面\(k-1\)个位置有2种颜色,则第\(i\)个位置只能放这两种颜色中的一种用合法方案减只有一种的方法,即得两种颜色的方案数而只有一种颜色的方案数,等于\(f[i-k+1]\),此时,让中间的\(k-2\)个......
  • P4839 P 哥的桶 题解
    题目大意有\(n\)个桶,\(m\)次操作。在\(pos\)桶中加入一个\(val\)值,求\([l,r]\)中选任意个桶使得异或和最大,求最大的异或和,注意每个节点是一个桶可以放多个值\(n,m≤5×104\)。题目思路单点修改,区间查询,异或最大值很显然是线段树维护线性基然后这样的复杂度是......
  • CF906C题解
    可能更好的阅读体验大家好,我和DP有仇,所以我用猜结论的方法过了这道题。可能是这道题的一个全新思路,可能人自闭久了什么都能想出来(((upd:好像这也是官方题解思路,看来大家做题不太喜欢看CF官方题解(((首先考虑一个问题:如果这是一道构造题,怎么构造一组合法的解?在草稿纸上画了很久......