https://www.luogu.org/problemnew/show/P1003
一开始觉得是用树套树来区间修改单点查询,但是发现空间不够开。
看了题解发现这个是静态的问题,而且只问一个点的结果。
直接暴力判断哪个地毯最后覆盖这个点就行了。
真的智障。
#include<bits/stdc++.h> using namespace std; #define ll long long int a[10005]; int b[10005]; int g[10005]; int k[10005]; int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]); } int x,y; scanf("%d%d",&x,&y); int ans=-1; for(int i=1;i<=n;i++){ if(a[i]<=x&&x<=a[i]+g[i]&&b[i]<=y&&y<=b[i]+k[i]) ans=i; } printf("%d ",ans); }