原创 浮點數二分查找模板題(數的三次方根)題解

本題是一個標準的浮點數二分查找模板題。 題目 題目鏈接 AcWing網站,https://www.acwing.com/problem/content/792/。 題目描述 給定一個浮點數n,求它的三次方根。 輸入格式 共一行,包含一個浮

原创 離散化模板題(重複元素離散化後的數字不同)題解

這是一個非常簡單的離散化模板題,沒有任何難度。之所以寫這個題解,是爲了加深對離散化的理解。 題目 題目鏈接 我的OJ,http://47.110.135.197/problem.php?id=5238。 題目描述 現有數列 A1, A2,

原创 正弦定理的使用 I

昨天收到某個初中生的題目,首先感謝同寢室的學霸好基友的提醒。 題目描述 如圖,中,AC>BC,點 D、E 分別在 BC,AC上,且 ,AE=BD,求證 。 思路 利用正弦定理來求解。學霸可以考慮自己借一下。 正弦定理的描述可以參考,ht

原创 正弦定理

正弦定理(The Law of Sines)是三角學中的一個基本定理。 定理定義 在任意 中,角A、B、C所對的邊長分別爲a、b、c,三角形外接園的半徑爲 R,直徑爲 D。則有:。即,一個三角形中,各邊和所對角的正弦之比相等,且該比值等

原创 差分——(2)二維差分

前面部分我們介紹了一維差分,https://blog.csdn.net/justidle/article/details/103761632。下面我們擴展一下,來介紹二維差分。 什麼是二維差分 我們有一個矩陣,如下圖所示。 根據二維前綴

原创 二分查找模板題(數的範圍)題解

這是一題非常典型的二分查找數據左下界和右上界模板題。 題目 題目鏈接 AcWing的網站,https://www.acwing.com/solution/acwing/content/3338/。 題目描述 給定一個按照升序排列的長度爲n

原创 離散化

概念 離散化(Discretization),把無限空間中有限的個體映射到有限的空間中去,以此提高算法的時空效率。通俗的說,離散化是在不改變數據相對大小的條件下,對數據進行相應的縮小。例如: 原數據:1, 999, 100000, 15;

原创 高精度計算中的名詞解釋

常見名詞 高精 超過了 C++ 固有的數據類型可以表達範圍的數。比如 18,446,744,073,709,551,616 這個數,已經超過了 unsigned long long 可以表達的數據範圍,也就是 8Byte。 低精 直接可以

原创 數論——同餘

理論背景 數學上,兩個整數除以同一個整數,若得相同餘數,則二整數同餘(英文:Modular arithmetic,德文:Kongruenz)。同餘理論常被用於數論中。最先引用同餘的概念與符號者爲德國數學家高斯。同餘理論是初等數論的重要組成

原创 C++ 的高精度除法

爲什麼需要高精度計算 對於 C++ 而言,最大的數據爲 long long(64b,8位),對於超過 8B 的數據,C++ 沒有對應的數據類型進行表示。所以我們需要知道高精度計算。更詳細的解釋,可以參考這個網頁https://blog.c

原创 快速冪取模

所謂的快速冪取模,就是快速的求一個冪式的模(餘)。在程序設計過程中,經常要去求一些大數對於某個數的餘數,爲了得到更快、計算範圍更大的算法,產生了快速冪取模算法。 下面使用 爲例。我們可以使用餘數相關定理,https://blog.csd

原创 快速冪

概率 顧名思義,快速冪就是快速算底數的 n 次冪。其時間複雜度爲 O(log₂N),與樸素的 O(N) 相比效率有了極大的提高。 原理 使用求 a 的 b 次方來解釋。把 b 轉換成二進制數,該二進制數第 i 位的權爲 。例如:,11 的

原创 數論——餘數相關定理

1、加法律:(a+b) mod c = ((a mod c) + (b mod c)) mod c。 2、減法律:(a-b) mod c = ((a mod c) - (b mod c)) mod c。 3、乘法律:(a*b) mod c

原创 C++的高精度減法

爲什麼需要高精度計算 對於 C++ 而言,最大的數據爲 long long(64b,8位),對於超過 8B 的數據,C++ 沒有對應的數據類型進行表示。所以我們需要知道高精度計算。更詳細的解釋,可以參考這個網頁https://blog.c

原创 C++ 的高精度乘法

爲什麼需要高精度計算 對於 C++ 而言,最大的數據爲 long long(64b,8位),對於超過 8B 的數據,C++ 沒有對應的數據類型進行表示。所以我們需要知道高精度計算。更詳細的解釋,可以參考這個網頁https://blog.c