我在运行这个黑客排名 Gridland 地铁的解决方案时遇到分段错误
I am getting segmentation fault while running this hackerrank Gridland metro's solution
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
//start of input
long n,m,k;
cin>>n>>m>>k;
bool a[n][m];
for(long i=0;i<n;i++){
for(long j=0;j<m;j++){
a[i][j] = true;
}
}
long b[k][3];
for(long i=0;i<3;i++){
for(long j=0;j<k;j++){
cin>>b[i][j];
}
}
//start of main logic
for(long i=0;i<k;i++){
long row = b[i][0]-1;
long col_init = b[i][1]-1;
long col_fin = b[i][2]-1;
while(col_init<=col_fin){
a[row][col_init]=false;
col_init++;
}
}
long count=0;
//counting number of empty area
for(long i=0;i<n;i++){
for(long j=0;j<m;j++){
if(a[i][j]==true){count++;}
}
}
cout<<count;
return 0;
}
约束 :
1 <= n,m <= 109
1 <= k <= 1000
所以在上面的代码中:
在某些情况下,我在上面的代码中遇到了分段错误。
它对于小输入可以正常运行,但对于大输入有问题。
问题指出 1 <= n,m <= 109
所以制作一个像 a[n][m] 这样的数组会占用太多的内存,这就是为什么你得到分割错误,想想一个不同的方法来解决它......
如果您不想要有关如何解决问题的任何提示,请立即停止阅读
提示:k的值小于1000,将所有火车轨道保存在一个矢量数组中,不会超过内存,然后尝试通过逐个浏览这些"k"轨道来添加安装灯柱的可用位置数量,思考一下如何做到这一点。
相关文章:
- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- 计算每个节点的树高,帮助我解释这个代码解决方案
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- visual c++,如何获取解决方案目录中的代码
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的固定时间步长与增量时间和插值的解决方案是错误的吗?
- 无法在问题解决方案中执行输出逻辑
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- 在一个解决方案中针对第三方静态库 (Creo) 的不同版本(版本)进行构建
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- N-queen问题:无法弄清楚为什么我的解决方案不起作用
- 从排序数组中删除重复项,具有不同代码方式的相同解决方案具有不同的输出
- 使用XOR查找O(n)-解决方案中的两个字符串是否为变位符
- 我在运行这个黑客排名 Gridland 地铁的解决方案时遇到分段错误