求解这段代码为什么会内存超限

Tony5t4rk 2017-12-05 12:16:13


#include <iostream>
int main()
{
int T,n,a,b,c;
std::cin>>T>>n>>a>>b>>c;
int *d;
d=new int[n];
int e[3];
e[0]=a;
e[1]=b;
e[2]=c;
for (int i = 0; i < n; ++i)
{
d[i]=0;
}
for (int i = 0; i < 3; ++i)
{
for (int j = 1; j <= n; ++j)
{
if (j%e[i]==0&&d[j-1]==0)
{
d[j-1]=1;
}
else if (j%e[i]==0&&d[j-1]==1)
{
d[j-1]=0;
}
}
}
int f=0;
for (int i = 0; i < n; ++i)
{
if (d[i]==1)
{
f++;
}
}
std::cout<<f;
return 0;
}
...全文
586 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 2 楼 FancyMouse 的回复:
十分怀疑是评测机内部把128mb限制写成了128kb
使用1092 kb内存的代码可以正常通过,所以应该不是这个问题,应该是我写的代码还有别的问题,我觉得是数组开太大了,题上给的n的范围比较大
  • 打赏
  • 举报
回复
n/(a和b和c的最小公倍数)、.. 三者相加为z ================================ 这个没有三者,就一个,复制粘贴的问题。
  • 打赏
  • 举报
回复
d=new int[n];这行 根据题目说明,n可以大到1亿,此时需要分配将近400MB空间,当然超限了。 此题目实际上不需要逐一测试,可以直接计算: n/a、n/b、n/c(均为整除),三者相加为x n/(a和b的最小公倍数)、.. 三者相加为y n/(a和b和c的最小公倍数)、.. 三者相加为z 结果即为x-2y+z
paschen 2017-12-05
  • 打赏
  • 举报
回复
应该是程序使用的内存超过了其限制的大小,有时不必太执着于这些平台,可以自己写一些想写的小程序
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 3 楼 jiht594 的回复:
不需要delete吗
不是,加上delete后还是内存超限,我先输入的n,然后用new定义了含有n个元素的数组,所以数组应该只有n个元素不会占用很大内存吧。。。。可能不是这里的问题? 没用delete以前用new定义动态数组也都成功了。
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 3 楼 jiht594 的回复:
不需要delete吗
我都忘了delete了,我试试
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
应该是程序使用的内存超过了其限制的大小,有时不必太执着于这些平台,可以自己写一些想写的小程序
我是想参加ACM,学校要选拔,所以在这些OJ平台上练习
jiht594 2017-12-05
  • 打赏
  • 举报
回复
不需要delete吗
FancyMouse 2017-12-05
  • 打赏
  • 举报
回复
十分怀疑是评测机内部把128mb限制写成了128kb
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 11 楼 DelphiGuy 的回复:
1亿个int就是4亿字节,大约381.47MB
多谢,Thanks♪(・ω・)ノ
  • 打赏
  • 举报
回复
1亿个int就是4亿字节,大约381.47MB
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 7 楼 DelphiGuy 的回复:
d=new int[n];这行 根据题目说明,n可以大到1亿,此时需要分配将近400MB空间,当然超限了。 此题目实际上不需要逐一测试,可以直接计算: n/a、n/b、n/c(均为整除),三者相加为x n/(a和b的最小公倍数)、.. 三者相加为y n/(a和b和c的最小公倍数)、.. 三者相加为z 结果即为x-2y+z
明白了,确实是没有考虑n值的大小就开了数组,就算内存不限制时间我这么遍历计算时间也会超限的,所以不仅是数组没考虑n的大小而开的太大算法也有很大的问题 PS:“n可以大到1亿,此时需要分配将近400MB空间”求教这个是怎么计算出来的

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧