50?

P1003 [NOIP2011 提高组] 铺地毯

@[垃圾一个](/space/show?uid=85933) 您开 $10000\times10000$ 的数组当然会爆啊。
by Drinkkk @ 2018-12-12 08:17:40


@[垃圾一个](/space/show?uid=85933) 数组开小点QAQ
by qian_shang @ 2018-12-12 08:24:32


@[垃圾一个](/space/show?uid=85933) 你能不能不开二维数组?
by Jeanne_Alter @ 2018-12-12 09:18:07


@[垃圾一个](/space/show?uid=85933) 正解难道不是4个一维数组记录QwQ
by Jeanne_Alter @ 2018-12-12 09:20:09


@[钟梓俊](/space/show?uid=48269) 可是是5个点MLE
by ⚡GG⚡ @ 2018-12-12 12:23:54


@[垃圾一个](/space/show?uid=85933) 这道题可以用**一维数组**解决!!
by 情谊、暴走 @ 2018-12-12 13:21:24


@[垃圾一个](/space/show?uid=85933) ~~神犇~~**蒟蒻**贡献代码如下: ```cpp #include<iostream> using namespace std; int map_zxx[100001],map_zxy[100001],map_yxx[100001],map_ysy[100001],n,b,a,l,k,x,y; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a>>b>>l>>k; map_zxx[i]=a;map_zxy[i]=b;map_yxx[i]=a+l;map_ysy[i]=b+k; } cin>>x>>y; for(int i=n;i>=1;i--) if(x>=map_zxx[i]&&x<=map_yxx[i]&&y>=map_zxy[i]&&y<=map_ysy[i]) { cout<<i<<endl; return 0; } cout<<"-1"<<endl; return 0; } ```
by 情谊、暴走 @ 2018-12-12 13:22:41


#include<bits/stdc++.h> using namespace std; int main() { int b[100000][5],n,x,y,i; cin>>n; for(i=1;i<=n;i++) for(int j=1;j<=4;j++) cin>>b[i][j]; cin>>x>>y; for(i=n;i>=1;i--) { if(b[i][1]<=x&&b[i][2]<=y&&b[i][1]+b[i][3]>=x&&b[i][2]+b[i][4]>=y) { cout<<i; return 0; } } cout<<-1; return 0; }
by 3346962731SUN @ 2019-01-15 20:46:04


嗯嗯,NOIP的出题大佬早就考虑过了,用新地毯编号覆盖旧地毯编号的只有50分
by Galaxy_Ivan @ 2019-02-06 18:02:20


|