1 条题解
-
0
自动搬运
来自洛谷,原作者为

duanfeitong
未曾忘怀搬运于
2025-08-24 22:43:00,当前版本为作者最后更新于2022-11-29 09:24:32,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
【题目传送门】
【题意解释】
模拟一个数据库,支持两种操作:
- 往地址 处插入一个数据 。
- 询问地址 处所有数据满足在范围 的有多少个。
【题目分析】
我们可以使用两个数组来模拟这个数据库(以代替复杂一些的
vector),一个数组表示地址,一个数组表示数据。【代码展示】
#include<bits/stdc++.h> using namespace std; //定义区 int n,k; int m,x,y,op; int a[100005],b[100005],num; int main() { scanf("%d%d",&n,&k); for(int T=0;T<n;T++) { scanf("%d",&op);//输入操作类型 if(op==1)//插入操作 { scanf("%d",&m); for(int i=1;i<=m;i++) { scanf("%d%d",&x,&y);//x为地址,y为数据 a[++num]=x,b[num]=y; //数组a储存第num个数据的地址 //数组b则储存第num个数据 } } else//询问操作 { int ans=0,l,r;//l,r 即 ymin,ymax scanf("%d%d%d",&m,&l,&r); for(int i=1;i<=num;i++)//遍历 if(a[i]==m)//如果第i个数的地址是所询问的地址 if(l<=b[i]&&b[i]<=r)//并且第i个数满足限制条件 ans++;//答案+1 printf("%d\n",ans);//输出,千万不要忘记换行! } } return 0;//The end } //MXX 2022/11/29谢谢!
- 1
信息
- ID
- 7352
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者