普及练习场 简单的模拟 铺地毯
2017-12-10 19:17
316 查看
题目链接
所以需要在得到了x,y之后,去找(x,y)坐标上的最上面一块地毯。
然后我之后可能会有很长一段时间拿Java写代码。我很想吐槽的是,Java的时间和空间确实不够优秀,至少和C++ 比起来。
然后回归正题,这题可以优化的,只要从后面开始找就好了,一找到就退出,找不到就是-1。
—————————————————C++分割线—————————————–
这里的cpp代码不是我写的,是我直接看的别人的代码,如有侵权,告知后立即删除
欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理
题意理解
这题的话,不能直接去模拟,因为按照地板来模拟,会炸空间,说不定时间也会炸。所以需要在得到了x,y之后,去找(x,y)坐标上的最上面一块地毯。
然后我之后可能会有很长一段时间拿Java写代码。我很想吐槽的是,Java的时间和空间确实不够优秀,至少和C++ 比起来。
然后回归正题,这题可以优化的,只要从后面开始找就好了,一找到就退出,找不到就是-1。
代码
import java.util.Scanner; public class Main { private static class Carpet { int a; int b; int g; int k; public Carpet(int a, int b, int g, int k) { this.a = a; this.b = b; this.g = g; this.k = k; } } static int n; static int a, b, g, k; static int x, y; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); Carpet[] carpet = new Carpet ; for(int i = 0; i < n; i++) { a = scanner.nextInt(); b = scanner.nextInt(); g = scanner.nextInt(); k = scanner.nextInt(); carpet[i] = new Carpet(a, b, g, k); } x = scanner.nextInt(); y = scanner.nextInt(); int top = -1; for(int i = 0; i < n; i++) { if(carpet[i].a <= x && x <= carpet[i].a + carpet[i].g) { if(carpet[i].b <= y && y <= carpet[i].b + carpet[i].k) { top = i + 1; } } } scanner.close(); System.out.println(top); } }
—————————————————C++分割线—————————————–
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> using namespace std; int n,x,y; struct node { int x,y,xl,yl; }t[10010]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d%d%d",&t[i].x,&t[i].y,&t[i].xl,&t[i].yl); scanf("%d%d",&x,&y); for(int i=n;i>=1;i--) { if(x>=t[i].x && x<=t[i].x+t[i].xl && y>=t[i].y && y<=t[i].y+t[i].yl) { printf("%d",i); return 0; } } printf("-1"); return 0; }
这里的cpp代码不是我写的,是我直接看的别人的代码,如有侵权,告知后立即删除
欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理
相关文章推荐
- 普及练习场之简单的模拟
- 普及练习场 简单的模拟 排座椅
- 普及练习场 简单的模拟 进制转换
- 普及练习场 简单的模拟 机器翻译
- 普及练习场 简单的模拟 笨小猴
- 普及练习场 简单的模拟 多项式输出
- 【重走普及路】【模拟】铺地毯
- 普及练习场 交叉模拟 税收与补贴问题
- 洛谷 1003——铺地毯(简单的模拟)
- 普及练习场 交叉模拟 花生采摘
- 普及练习场 简单数学 A % B Problem
- 普及练习场 交叉模拟 均分纸牌
- 普及练习场 简单数学 又是毕业季I
- 普及练习场 简单数学 末日的传说
- 普及练习场 交叉模拟 字符串的展开
- 普及练习场 简单数学 [SDOI2008]仪仗队
- 简单的模拟——铺地毯
- 普及练习场 交叉模拟 乒乓球
- 简单的模拟——铺地毯(洛谷)
- 普及练习场 简单数学问题 火星人