高精度其它總結
本週訓練拓展題
本週複習的知識點有:排序、二分、高精度、字首和與差分、雙指標演算法、位運算、離散化、區間合併。
void
qsort
(int a,
int l,
int r)
a[i]
= x;
qsort
(a, l, i -1)
;qsort
(a, i +
1, r)
;}
時間複雜度:o(nlogn)
void
msort
(int a,
int l,
int r)
while
(i <= mid) b[k ++
]= a[i ++];
while
(j <= r) b[k ++
]= a[j ++];
k =0;
for(
int i = l; i <= r; i ++
) a[i]
= b[k ++];
}
時間複雜度:o(nlogn)
求數n的二進位制第k位數字:n >> (k – 1) & 1
返回數n的最後一位1:lowbit(n) = n & -n
for
(int i =
0, j =
0; i < n; i ++
)
時間複雜度:o(n)
int
bsearch1
(int l,
int r)
return l;
}
int
bsearch2
(int l,
int r)
return l;
}
時間複雜度:o(logn) * check的時間複雜度
string add
(string a, string b)
if(t) c +
='0'
+ t %10;
reverse
(c.begin()
, c.
end())
;return c;
}
bool
check
(string a, string b)
//判斷大小
string sub
(string a, string b)
reverse
(a.begin()
, a.
end())
;reverse
(b.begin()
, b.
end())
;
string c;
int t =0;
//退位
for(
int i =
0; i < a.
size()
; i ++
)else
}reverse
(c.begin()
, c.
end())
;int i =0;
while
(c[i]
=='0'
&& i +
1< c.
size()
) i ++
;//去除前導零
c = c.
substr
(i, c.
size()
- i);if
(c.size()
==0) c =
'0';
if(f) c =
'-'+ c;
return c;
}
大數 × int型
string mul
(string a,
int b)
while
(t)reverse
(c.begin()
, c.
end())
;int i =0;
while
(c[i]
=='0'
&& i +
1< c.
size()
) i ++
; c = c.
substr
(i, c.
size()
- i)
;return c;
}
大數 ÷ int型
string div
(string a,
int b,
int&d)
//d為餘數
int i =0;
while
(i +
1< c.
size()
&& c[i]
=='0'
) i ++
; c = c.
substr
(i, c.
size()
- i)
;return c;
}
大數 ÷ 大數 可以用高精度減法實現,每次減去除數即可
sscanf、sprintf函式可用於字串和數字間的互換
sscanf用法
int
sscanf
(const
char
*buffer,
const
char
*format,..
.);
返回值為成功賦值的個數,其它用法和scanf相同,string型別需要用c_str()轉換
sprintf用法
int
sprintf
(char
*string,
char
*format [
,argument,..
.]);
long long格式化輸出時,linux環境下為"lld"
windows環境下為"l64d"
1 << k
表示2的k次方
二維vector> a
行數:a.size()
列數:a[0].size()
int_max是int型的最大值,判斷是a * 10是否超限,用a > int_max / 10
int_max=2^31-1
int型負數轉換為unsigned int時,相當於第32數字變為1
位運算是補碼進行運算
二分查詢函式(基於已排序的序列)
lower_bound (beg,end,val)
返回乙個迭代器,指向非遞減序列[first, last)中的第乙個大於等於(>=)val的位置
upper_bound (beg,end,val)
返回乙個迭代器,指向非遞減序列[first, last)中的第乙個大於 (>) val的位置
具有二分性不一定是對排序的序列,也可能是滿足某條件
本週總結(09 11 13)
計畫總是趕不上變化的,本來還想著能夠在中旬之前結束寫文件,但是現在看看還得再用一段時間。前幾天不經意之間想了一下,把自己嚇了一跳。這個學期馬上就要結束了!時間要轉進吶,質量也不能放下,畢竟也算是第一次正兒八經的做工程 以前的那個算是玩耍吧 這週也沒白過,腦袋始終是出於迴圈狀態。不斷的思考著這個系統中...
本週複習總結
1.軟體 是為完成某些特定功能而編制的乙個到多個程式檔案的集合 2.程式語言的發展 機器語言 組合語言 高階語言 3.編碼實現 源 編譯源 鏈結注意 1 在編譯源 的過程中,翻譯 解釋 程式比編譯程式的執行速度要慢 4.乙個簡單的程式設計一般包含分析問題,設計演算法,編制程式,除錯程式 5.任何解決...
本週技術總結
總結問題有 1.頁面有只顯示一半。原因是js 中有些資料計算有問題,計算量過大,導致頁面顯示超時,只顯示一半。解決方法,去掉 優化js中的資料計算與載入。2.當有兩個或兩個以上的地方要對某一相同的物件進行增刪改時,會造成資料的相互覆蓋,有可能出現空值,使得客戶登入報空值。修改方案,只對所操作的資料物...