_L.Y.H._ 2022-01-24 11:35 采纳率: 70%
浏览 44
已结题

在某些情况中,为什么程序突然中断?

问题
【搜索与回溯算法】生成字符串 (Standard IO)
时间限制: 1000 ms 空间限制: 262144 KB 具体限制

题目描述:
假设一个字符串只由字符”0”、”1”、‘’组成,其中字符‘’表示该字符可由字符”0”或”1”替代。

现有一些字符串,根据这些字符串生成所有可生成的字符串。

注意后一个例子中”*01”并没有生成新的字符串。

输入
第一行是两个整数M,N(1≤M≤15,0≤N≤2500)。M表示字符串的长度,N表示字符串的个数。
以下N行每行各有一个字符串。各行的行首、行末没有多余的空格。

输出
一行,为一个整数,Total表示所能生成的字符串的个数。

样例输入
2 3
10
1
0

样例输出
4

代码:

#include<bits/stdc++.h>
using namespace std;
string a[2505];
int n,m,t,len,flag;
bool visit[900000005];
void dg(int x,int i)
{
    if(x>len)
    {
        long long qn=atol(a[i].c_str());
        if(visit[qn]==0)
        {
            t++;
            visit[qn]=1;
            cout<<1;
        }
    }
    else
    {
        
        if(a[i][x]=='*')
        {
            a[i][x]='1';
            dg(x+1,i);
            a[i][x]='0';
            dg(x+1,i);            
            a[i][x]='*';
        }
        else dg(x+1,i);
    }
}
int main()
{
    cin>>m>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];    
        len=a[i].size();
        dg(0,i);
    }
    cout<<t;
}



  • 写回答

1条回答 默认 最新

  • orange4reg 2022-01-24 12:51
    关注

    假设bool占用1字节并按1字节对齐,900000005字节/1024/1024/1024=0.8381903218gb,小程序大内存。如果按照4字节对齐,那还真不得了。系统会如何处理我不知道,但是不应该这样写。最后,抱歉,没有看明白题目。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月3日
  • 已采纳回答 1月26日
  • 修改了问题 1月24日
  • 修改了问题 1月24日
  • 展开全部

悬赏问题

  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法