Acwing 基礎課 基礎演算法 高精度加減乘除模板

2021-10-19 18:23:52 字數 2381 閱讀 5731

題目鏈結

題目大意

給定兩個正整數,計算它們的和。

位數100000

#include

#include

#include

#include

using

namespace std;

const

int n =

100010

;int a[n]

,b[n]

,c[n]

;// a+b=c,tnt是ab兩數的最大位數

// 返回c的位數(逆序輸出即是答案)

intadd

(int a,

int b,

int c,

int tnt)

if(t)

return tnt;

}int

main()

int t2 =0;

for(

int i = b.

size()

-1;i >=

0;i--

)int t =

add(a,b,c,

max(t1,t2));

for(

int i = t ;i >=

1;i--

) cout << c[i]

;return0;

}

題目鏈結

題目大意

給定兩個正整數,計算它們的差,計算結果可能為負數。

位數100000

#include

#include

using

namespace std;

const

int n =

1e5+5;

bool

cmp(vector<

int>

&a,vector<

int>

&b)void

trimzero

(vector<

int>

&a)vector<

int>

sub(vector<

int>

&a,vector<

int>

&b)trimzero

(c);

return c;

}int

main()

else

for(

int i = c.

size()

-1;i >=

0;i--

) cout << c[i]

;return0;

}

題目鏈結

題目大意

給定兩個正整數a和b,請你計算a * b的值。

1≤a的長度≤100000,

0≤b≤10000

#include

#include

using

namespace std;

vector<

int>

mul(vector<

int>

&a, vector<

int>

&b)while

(c.size()

>

1&& c.

back()

==0) c.

pop_back()

;// 必須要去前導 0,因為最高位很可能是 0

return c;

}int

main()

題目鏈結

題目大意

給定兩個非負整數a,b,請你計算 a / b的商和餘數。

1≤a的長度≤100000 ,

1≤b≤10000

b 一定不為0

#include

#include

#include

#include

#include

using

namespace std;

vector<

int>

div(vector<

int> a,

int b,

int&r)

reverse

(c.begin()

,c.end()

);while

(c.size()

>

1&& c.

back()

==0) c.

pop_back()

;return c;

}int

main()

cout << endl << r;

return0;

}

AcWing 演算法基礎課 動態規劃

1 揹包問題 1 01揹包 每件物品僅用一次 可以做空間優化 dp j max dp j dp j v i w i 0,1揹包狀態均是從前一迴圈的狀態轉移 2 完全揹包 每件物品可以用無限次 完全揹包的狀態可以從當前迴圈的狀態轉移,進行優化 3 多重揹包 每件物品有不同的數量限制 可以對物品的數量限...

Acwing 基礎課 基礎演算法 歸併排序

參考鏈結 include const int n 100005 int a n int t n voidms int l,int r while i mid t k a i while j r t k a j for int i l i r i intmain 題目鏈結 參考鏈結 題目大意 給定乙個...

Acwing演算法基礎課知識點

知識點 基礎演算法 模板鏈結常用 模板1 基礎演算法 排序 二分高精度 字首和與差分 雙指標演算法 位運算離散化 區間合併 資料結構 模板鏈結常用 模板2 資料結構 鍊錶與鄰接表 樹與圖的儲存 棧與佇列 單調佇列 單調棧 kmptrie 並查集堆 hash表 c stl使用技巧 搜尋與圖論 模板鏈結...