_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日
  • 展开全部

悬赏问题

  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译