zoukankan      html  css  js  c++  java
  • 数据结构(三)

    问题 C: 数据结构作业01 -- 一元多项式的求积

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 1711  解决: 293
    [提交][状态][讨论版]

    题目描述

    一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表。请编写程序对输入的两个一元多项式求积,并输出求积的结果。

    输入

    输入为两个一元多项式,每个一元多项式输入一行,按照降幂依次输入每个单项式的系数和指数,并以-1 -1作为结束。 系数和指数均为整数,指数不小于0。

    输出

    输出为求积结果多项式,按照降幂依次输出每个单项的系数和指数,每个数值后面用一个空格隔开,输出结果多项式后换行。 系数为0的单项式不得输出——除非结果多项式就是0,则直接输出0。

    样例输入

    2 5 1 0 -1 -1
    5 4 3 0 -1 -1
    

    样例输出

    10 9 6 5 5 4 3 0 


    #include<stdio.h>  
    #include<string.h>  
    int a[100000],b[100000],c[100000];  
    int main(){  
        int i,j;  
        int an,m,n;  
        m=0;  
        n=0;  
        int max,maxa,maxb;  
        max=0;  
        maxa=0;  
        maxb=0;  
        memset(a,0,sizeof(a));  
        memset(b,0,sizeof(b));  
        memset(c,0,sizeof(c));  
        while(~scanf("%d %d",&n,&m)){  
                if(m==-1&&n==-1)  
                    break;  
                if(maxa<m)  
                    maxa=m;  
                a[m]=n;  
        }  
        while(~scanf("%d%d",&n,&m)){  
            if(m==-1&&n==-1)  
                break;  
            if(maxb<m)  
                maxb=m;  
            b[m]=n;  
        }  
        max=maxa+maxb;  
        for(i=0;i<=maxa;i++){  
            for(j=0;j<=maxb;j++){  
                n=a[i]*b[j];  
                if(n!=0){  
                    m=i+j;  
                    c[m]+=n;  
                }  
            }  
        }  
        int flag=1;  
        for(i=max;i>=0;i--){  
            if(c[i]!=0){  
                flag=0;  
                printf("%d %d ",c[i],i);  
            }  
        }  
        if(flag)  
            printf("0");  
        printf("
    ");  
        return 0;  
    }  

    第一:memset(a,1,size) 对数组地址 a 开始赋size 个1

    第二: 当我们输入时,其实是输入的ASCALL码,范围为0~255 ,c中将EOF定义为-1,当 scanf()==EOF 就是输入错误了,而 ~ 是位运算,它是将数据在内存中的每一位(当然是二进制)取反。-1在内存中所有位全部为1,~(-1)=0,即对-1取非就是0。

    第三:背包法思想,很有用,没事可以拿出来好好思考。

  • 相关阅读:
    删除重复记录
    SQL Server调试存储过程
    SQL日期格式化应用大全
    阻塞分析
    Ajax原理详细说明
    varchar和nvarchar的区别
    临时表vs.表变量以及它们对SQLServer性能的影响
    Enterprise Library系列文章回顾与总结
    关于分页控件的文章
    SQL操作全集
  • 原文地址:https://www.cnblogs.com/cunyusup/p/7707145.html
Copyright © 2011-2022 走看看