社区讨论

Wronganswer on 8

P2553[AHOI2001] 多项式乘法参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lvwflypo
此快照首次捕获于
2024/05/07 21:33
2 年前
此快照最后确认于
2024/05/07 21:43
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
string s;
long long a[550];
long long b[550];
long long ans[550];
bool Judge(char x){
    if(x>='0'&&x<='9')return true;
    return false;
}
int main(){
    //freopen("1.in","r",stdin);
    //freopen("1.out","w",stdout);
    while(getline(cin,s)){
        bool fl=0;
        int L=s.length(),num=0;
        if(s.find('*')!=string::npos)fl=true;
        if(fl==false)continue;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        memset(ans,0,sizeof(ans));
        for(int i=0,tt=0;i<L;i+=tt){
            tt=0;
            int x=0;
            if(Judge(s[i])){
                int j=i;
                while(Judge(s[j]))++tt,x=(x<<1)+(x<<3)+s[j]^48,j++;
                while(s[j]==' ')++s[j];
                if(s[j]=='a'){
                    j+=2,tt+=2;
                    int y=0;
                    while(Judge(s[j]))++tt,y=(y<<1)+(y<<3)+s[j]^48,j++;
                    if(fl)a[y]+=x;
                    else b[y]+=x;
                }
                else if(s[j]=='+'||s[j]==')'||s[j]=='*'||j==L)
                    if(fl)a[0]+=x;
                    else b[0]+=x;

            }
            if(s[i]=='*'||i+(tt?tt:1)-1==L-1){
                if(s[i]=='*')++tt;
                fl=0;
            }
            if(tt==0)tt=1;
        }
        for(int i=0;i<=30;++i)
        {
            for(int j=0;j<=30;++j){
                ans[i+j]+=a[i]*b[j];
            }
        }
        int r=300;
        while(r>=0&&ans[r]==0)--r;
        bool fr=true;
        if(r==-1){
            cout<<0<<endl;
            continue;
        }
        for(int i=r;i>=0;--i){
            if(fr==0)printf("+");
            if(ans[i]==0)continue;
            fr=0;
            if(i==0){printf("%d",ans[i]);continue;}
            printf("%da^%d",ans[i],i);
        }
        cout<<endl;
    }
    return 0;
}
CPP

回复

0 条回复,欢迎继续交流。

正在加载回复...