【PAT A1009】Product of Polynomials (25)(25 分)

This time, you are supposed to find A*B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 ... NK aNK, where K is the number of nonzero terms in the polynomial, Ni and aNi (i=1, 2, ..., K) are the exponents and coefficients, respectively. It is given that 1 <= K <= 10, 0 <= NK < ... < N2 < N1 <=1000.

Output Specification:

For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

Sample Input

2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output

3 3 3.6 2 6.0 1 1.6

分析:

簡單題:多項式的乘法祥国,K是項的個數(shù),a是系數(shù),n是指數(shù)牍疏。按照正常計算方式計算就行懊烤,但是0號測試點(diǎn)沒通過捍歪,還不知道是什么原因衔掸。
整體延用加法的hash結(jié)構(gòu)透揣,先用兩個結(jié)構(gòu)體存儲兩個多項式的數(shù)據(jù)婴渡,計算的時候再存到hash數(shù)組中幻锁。
hash[]的下標(biāo)是n,數(shù)值是a(double)边臼。輸出的時候注意精度哄尔。

CODE:

#include <cstdio>
#include <iostream>
using namespace std;

#define maxn 2010
double temp[maxn];
struct poly{
    int n;
    double a;
}x[maxn],y[maxn];


int main(){
    int num=0;
    int m=0,n=0;
    int a;
    double b;
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>a;
        cin>>b;
        x[i].n=a;
        x[i].a=b;
    }
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a;
        cin>>b;
        y[i].n=a;
        y[i].a=b;
    }
    for(int i=0;i<m;i++){   //相乘
        for(int j=0;j<n;j++){
            a=x[i].n+y[j].n;
            b=x[i].a*y[j].a;
            if(temp[a]!=0){
                temp[a]+=b;     
            }
            else{
                temp[a]=b;
                num++;
            }
        }
    }
    cout<<num;
    for(int i=maxn-1;i>0;i--){
        if(temp[i]!=0){
            cout<<" "<<i<<" ";
            printf("%.1f",temp[i]);
        }
    }   
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市柠并,隨后出現(xiàn)的幾起案子岭接,更是在濱河造成了極大的恐慌,老刑警劉巖臼予,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿傅,死亡現(xiàn)場離奇詭異,居然都是意外死亡瘟栖,警方通過查閱死者的電腦和手機(jī)葵擎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來半哟,“玉大人酬滤,你說我怎么就攤上這事≡⒄牵” “怎么了盯串?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長戒良。 經(jīng)常有香客問我体捏,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任几缭,我火速辦了婚禮河泳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘年栓。我一直安慰自己拆挥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布某抓。 她就那樣靜靜地躺著纸兔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪否副。 梳的紋絲不亂的頭發(fā)上汉矿,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機(jī)與錄音备禀,去河邊找鬼负甸。 笑死,一個胖子當(dāng)著我的面吹牛痹届,可吹牛的內(nèi)容都是我干的呻待。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼队腐,長吁一口氣:“原來是場噩夢啊……” “哼蚕捉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柴淘,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤迫淹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后为严,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敛熬,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年第股,在試婚紗的時候發(fā)現(xiàn)自己被綠了应民。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡夕吻,死狀恐怖诲锹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涉馅,我是刑警寧澤归园,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站稚矿,受9級特大地震影響庸诱,放射性物質(zhì)發(fā)生泄漏捻浦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一桥爽、第九天 我趴在偏房一處隱蔽的房頂上張望朱灿。 院中可真熱鬧,春花似錦聚谁、人聲如沸母剥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至习霹,卻和暖如春朵耕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淋叶。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工阎曹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煞檩。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓处嫌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親斟湃。 傳聞我的和親對象是個殘疾皇子熏迹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344