基礎運算:
整數/整數 = 整數
浮點數/浮點數 = 浮點數
整數 - 浮點數 = 浮點數 (變為 浮點數 - 浮點數 = 浮點數)
演算法競賽的程式三件事情:
讀入資料、計算結果、列印輸出
不要列印提示資訊, 不需要在列印輸出後「暫停程式」
重要常數定義:
const double pi = acos(-1.0);
c語言的短路策略:
用短路的方法計算邏輯表示式,速度快,一旦能夠確定整個表示式的值,就不再繼續計算
編譯器的任務:
把人類可以看懂的源**變成機器可以直接執行的指令
關於陣列:
在演算法競賽中,常常難以精確計算出所需要的陣列的大小,陣列一般會宣告地稍大些。在空間夠用的情況下,浪費一點不會有太大影響。
比較大的陣列應盡量宣告在main函式之外。只有放在外面時,陣列a才可以開得很大;放在main函式內時,陣列稍大就會異常退出
如果要從陣列a複製k個元素到陣列b:memcpy(b, a, sizeof(int)*k)
如果陣列a和b都是浮點型的,複製時要寫成memcpy(b, a, sizeof(double) * k)
(使用memcpy函式要包含標頭檔案string.h)
如果要把陣列a全部複製到陣列b中, 可以寫成memcpy(b, a, sizeof(a))
(從書上摘錄來,但覺得這個程式輸入沒有終止也)#include #define maxn 1000000005
int a[maxn];
int main()
變數交換幾種方法:
(1)三變數法:
#include int main()
(2)採用加法:
#include int main()
(3)採用異或運算:
#include int main()
以上內容引自 劉汝佳 《演算法競賽入門經典》 程式設計與基礎演算法
演算法 algorithm 是指解題方 而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。乙個演算法的優劣可以用空間複雜度與時間複雜度來衡量。有窮性 finiteness 演算法必須在執行有限個步驟...
GIS演算法 向量(陣列基礎 程式設計基礎)
在程式設計中的應用 有向線段 有一條線段的端點是有先後次序之分的,這條線段即有向線段 directed segment 向量 有限線段p1p2的起點p1在座標原點,把它稱為向量p2 二維向量p x1,y1 q x2,y2 向量加法 p q x1 x2,y1 y2 向量減法 p q x1 x2,y1 ...
一些基礎演算法基礎程式設計思維
1.陣列中兩個元素相加等於指定數的所有組合 僅用一次迴圈且不能建立新的陣列或者集合 思路 從陣列的前後兩端 i 0,j array.lengths 分別利用指標 計數器 來掃瞄陣列,如果滿足相加等於目標則列印,否則當sum 快速尋找滿足條件的兩個 陣列中兩個數的和滿足指定結果 public clas...