_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 宾馆客房管理系统可视化
    • ¥20 unity打光没有照亮物体
    • ¥25 powershell如何拷贝1周前的文件
    • ¥15 询问MYSQL查询SQLSERVER数据表并比较差异后,更新MYSQL的数据表
    • ¥15 关于#前端#的问题,请各位专家解答!
    • ¥15 最小生成树问题 Prim算法和Kruskal算法
    • ¥25 医院住院病人呼叫器设计
    • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
    • ¥20 C语言字符串不区分大小写字典排序相关问题
    • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据