1. 程式人生 > >類歐幾里得小記

類歐幾里得小記

前言

每次看了很快就忘了,乾脆寫一篇部落格,來加深記憶。

定義


f(a,b,c,n)=i=0nai+bc
g(a,b,c,n)=i=0niai+bc
g(a,b,c,n)=i=0nai+bc2
m=an+bc

一、f(a,b,c,n)

當a>=c時,=f(a%c,b,c,n)+acn(n+1)/2
當b>=c時,=f(a,b%c,c,n)+bc(n+1)
然後

=i=0nai+bc
我們將ai+bc當作一條以i為自變數的直線,
這裡寫圖片描述
於是原式就等於這個直角梯形內的整點個數,
=i=0nj=1m[ai+bc>=
j]

=i=0nj=0m1[ai+bc>=j+1]
=i=0nj=0m1[ai+b>=jc+c]
=i=0nj=0m1[ai+b>jc+c1]
=i=0nj=0m1[ai>jc+cb1]
=i=0nj=0m1[i>jc+cb1a]
=j=0m1i=0n[i>jc+cb1a]
=j=0m1(ni=0n

相關推薦

小記

前言 每次看了很快就忘了,乾脆寫一篇部落格,來加深記憶。 定義 設 f(a,b,c,n)=∑i=0n⌊ai+bc⌋ g(a,b,c,n)=∑i=0ni⌊ai+bc⌋ g(a,b,c,n)

bzoj 1938 - +線段樹

題目連結:https://darkbzoj.cf/problem/1938   解題思路; 對於區間更新: 前半部分可以用線段樹求等差數列和,後半部分可以用類歐幾里得演算法求出值 類歐幾里得 然後是要對區間離散化,其中有個問題在於對於區間(l,r)分裂為(

學習類小記

首先 我們設mod表示取模(%) 我們設[]表示當括號內判斷條件為真則退出1,否則退出0 關於歐幾里得 對於b<>0 滿足:gcd(a,b)=gcd(b,a % b) 證明與時間複雜度不多說了吧? 複雜度證明貼上,看不懂也不怪我了。 關於類歐幾里得 這個

[51nod1187][演算法]尋找分數

Description 給出 a,b,c,d, 找一個分數p/q,使得a/b < p/q < c/d,並且q最小。例如:1/3同1/2之間,符合條件且分母最小的分數是2/5。(如果q相同,

【LOJ】#138. 演算法

傳送門:loj138 題解 被標題坑進去,斷斷續續做了一天。。。確實是“類歐幾里得演算法”啊(霧。。。 原題解-fjzzq2002 設答案為函式 f

BZOJ3817 清華集訓2014 Sum

傳送門 令\(\sqrt r = x\) 考慮將\(-1^{\lfloor d \sqrt r \rfloor}\)魔改一下 顯然它等於\(1-2 \times (\lfloor dx \rfloor \mod 2)\),也就等於\(1 - 2 \times \lfloor dx \rfloor +

[BZOJ2987]Earthquake:演算法

分析 類歐的式子到底是誰推的啊怎麼這麼神仙啊orz! 簡單說一下這道題,題目中的約束條件可以轉化為: \[ y \leq \frac{c-ax}{b} \] 有負數怎麼辦啊?轉化一下: \[ y \leq \frac{ax+c\%a}{b} \] 唔姆,好像差不多。 列舉\(x\),可以看成那個

演算法與推導

總起 類歐幾里得主要是模仿歐幾里得函式的過程,求解一些問題,時間複雜度與歐幾里得一致。 我們這裡主要是要多弄一個j,然後和i交換主體,再把i消去,達到轉移為新狀態的目的。 程式碼 目前懶得寫,反正式子是推兩次了,很正確 題目 [JZO

演算法亂搞記

這三個f,g,h讓我的腦子快要爆炸,還是終於推了出來,記錄一下。 記得初一的時候就無意間在ZJY的PPT翻到了這個東西,當時和WYT推了一波,到現在連個印象都沒有。 據說有幾何推法,我這麼渣肯定是不會的了。 定義: f(a,b,c,n)=∑n

淺析逆元、擴充套件和莫比烏斯反演(填坑ing)

逆元 扯一點沒有多大用的東西 在數論裡面,我們不把倒數叫做倒數,而叫做逆元(純屬裝逼) 逆元的作用很大,先來看點easy的栗子 某些性質 a+b≡amodp+bmodp(modp)a+b≡amodp+bmodp(modp) a−b≡am

演算法(部分)

Preface 歐幾里得演算法,就是輾轉相除法。 gcd(i,j)=gcd(j,i%j) 定義 定義函式 F(a,b,c,n)=∑i=0n⌊ai+bc⌋ 推導一波 顯然當a≥c或者b≥c時,F(a,b,c,n)=∑i=0n(⌊(amodc)i+(b

bzoj2712 -- 演算法

與bzoj2187類似,不過是要先將小數轉化成四捨五入前的分數 程式碼: 1 #include<cstdio> 2 #include<cstring> 3 #inclu

BZOJ3817:Sum(

傳送門 題意: 給定正整數n,r,求: ∑d=1n(−1)⌊dr√⌋ 題解: 有點像類歐幾里得。 只需要知道: ∑d=1n⌊dr√⌋%2 又因為 ⌊x⌋%2=⌊x⌋−⌊x2⌋∗2 那麼問題轉化為求 ∑d=1n⌊dx⌋ 顯然這是一條從原點

一般形式

什麼是類歐幾里得 類歐幾里得可以用兩種方式描述: ①求出以下黃色部分中整點個數(整點可以在兩條直線方程上,在x軸上不算) ②給出a,b,c,n,求出f(a, b, c, n),其中 類歐幾里得的一般形式 形式①(標準類歐幾里得): (其中a,

JZOJ5243【GDOI2018模擬8.8】超級綿羊異或 演算法

好像沒什麼人去改這題啊。。。 題意:求axor(a+b)xor(a+b∗2).....xor(a+b∗(n−1)) 考慮計算答案的第x位是否為1 那麼對於a+bi,判斷(a+bi)/(1<&

[聯合集訓6-12] Fraction 莫比烏斯反演+杜教篩+

因為區間可以差分成字首,我們只用考慮≤ab≤ab的最簡真分數jiji的個數。 Ans=∑1≤j<i≤n[j≤aib][gcd(i,j)=1]Ans=∑1≤j<i≤n[j≤aib][gcd(i,j)=1] 莫比烏斯反演, ∑1≤j<i≤n[

演算法

1.k-d tree演算法的研究 http://blog.51cto.com/underthehood/687160 2.論文:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.28.6468&rep=rep1&am

BZOJ3817 Sum(算法)

b+ pan 倒數 小數 -- 斜率 logs 如何 線下 設$t=\sqrt r$,原題轉化為$\sum_{x=1}^n(4*\lfloor\frac{tx}2\rfloor-2*\lfloor tx\rfloor)$考慮如何求$\sum_{x=1}^n\lfloor\f

數論,算法

技術分享 .cn com -1 tails key detail sdn tom 類歐幾裏得部分轉載自不來也不去的一只失憶蝴蝶。%%% 數論,類歐幾裏得算法

[補檔計劃] 算法

amp gin 歐幾裏得算法 time nbsp align 歐幾裏得 -1 b- $$\begin{aligned} f(a, b, c, n) & = \sum_{i = 0}^n \lfloor \frac{ai + b}{c} \rfloor \\ &