社区讨论

新手P1830轰炸三指针越界求解

学术版参与者 3已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@m0b42n8o
此快照首次捕获于
2024/08/26 22:46
2 年前
此快照最后确认于
2025/11/04 22:20
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;


int main(){
    long long int n,m,x,y,x1,y1,x2,y2,f1,f2,sum=0;//n到y2都是题目中的变量劳烦各位大佬去看一眼,f1,f2是题中关键点的坐标,sum是计数器,计何时轰炸最后一轮
    cin >> n >> m >> x >> y;
    long long int a[n][m] = {0};//a数组是最后一次轰炸
    long long int b[n][m] = {0};/b数组是轰炸次数
    for(int k = 0;k<x;k++){
    	cin>>x1>>y1>>x2>>y2;
    	for(int i = x1;i<=x2;i++){
    		for(int j = y1;j<=y2;j++){
    			b[i][j]++;
    			sum++;
    			a[i][j] = sum;
			}
		}
	}

	for(int k = 0;k<y;k++){
    	cin>>f1>>f2;
    	if(b[f1][f2]!=0){
    		cout << "Y" << " " << b[f1][f2] << " " << a[f1][f2]/10 << endl;//这里的除以十是还没调试好数组a随便打的 
		}
		else{
			cout << "N";
		}
	}
    return 0;
}
新手求解:以上代码的测试用例4中会RE,下载测试数据后发现是指针越界,有什么方法解决吗

回复

10 条回复,欢迎继续交流。

正在加载回复...