题解 | #铺地毯#

铺地毯

https://ac.nowcoder.com/acm/problem/16593

在雨巨的课上听到的 思维有了之后用不到算法。

我只考虑最后一次覆盖在上面的是什么。对于坐标面上的一个点,只要它在某一个地毯的大小范围内,就更新这个点的对应地毯值。

可以通过一个for循环 便利所有地毯来实现。当这个点在某个地毯的大小范围内时,就更新color值。

using namespace std;
int a[10010],b[10010],c[10010],d[10010];
int main() 
{
    int n;
    scanf("%d",&n);
    for(int i = 1; i <= n; i++) 
    {
        scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
    } //给每一张地毯初始化
    int color = -1;
    int x,y;
    scanf("%d%d",&x,&y);
    for(int i = 1; i <= n; i++) 
    {
        if(a[i] <= x && b[i] <= y && x <= (a[i] + c[i]) && y <= (b[i] + d[i]))
            color = i;
    }
    cout<<color;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-23 18:33
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务