我用了STL大法,50个数据就爆超时RE,请求巨佬帮我看下
查看原帖
我用了STL大法,50个数据就爆超时RE,请求巨佬帮我看下
153653
徐大大楼主2021/2/16 00:28

不改变现有函数情况下,还能怎样降低时间复杂度,求巨佬帮忙!!抱拳

#include<string>
#include<cstdlib>
using namespace std;
int main()
{
    int A[52];
    int B[52][6];
    int a,b,c,d,e,f,i;//b是上一个符号 
    string s1,s6,s7;//2~5是加减乘除    6储存符号 
    cin>>i;
    for(a=1;a<=i;a++)
    {
    	cin>>s1;
    	if(s1[0]=='a')
    	{
    		cin>>B[a][1]>>B[a][2];
    		A[a]=B[a][1]+B[a][2];
    		b=1;
    		s6[a]='+'; continue;
    	}
    	if(s1[0]=='b')
    	{
    		cin>>B[a][1]>>B[a][2];
    		A[a]=B[a][1]-B[a][2];
    		b=2;
    		s6[a]='-'; continue;
    	}
    	if(s1[0]=='c')
    	{
    		cin>>B[a][1]>>B[a][2];
    		A[a]=B[a][1]*B[a][2];
    		b=3;
    		s6[a]='*'; continue;
    	}
    	if(s1[0]!='a'&&s1[0]!='b'&&s1[0]!='c')
    	{
    		B[a][1]=atoi(s1.c_str());
    		if(b==1)
    		{
    		cin>>B[a][2];
    		A[a]=B[a][1]+B[a][2];
    		b=1;
    		s6[a]='+'; continue;
    	}
            if(b==2)
			{
    		cin>>B[a][2];
    		A[a]=B[a][1]-B[a][2];
    		b=2;
    		s6[a]='-'; continue;
    	}
		    if(b==3)
		    {
    		cin>>B[a][2];
    		A[a]=B[a][1]*B[a][2];
    		b=3;
    		s6[a]='*'; continue;
    	}}
    }
    	for(a=1;a<=i;a++)
    {
    	s7=to_string(B[a][1])+s6[a]+to_string(B[a][2])+'='+to_string(A[a]);
    	b=s7.size();
    	cout<<s7<<endl<<b<<endl;
    }
}```
2021/2/16 00:28
加载中...