原创 擴展歐幾里德一系列算法

一、歐幾里德算法又稱輾轉相除法,用於計算兩個正整  a,b的最大公約數。 定理:gcd(a,b) = gcd(b,a%b) 。代碼實現如下: #include<stdio.h> #define ll long long ll gcd(

原创 Floyd 最短路

#include<stdio.h> #include<stdlib.h> #include<iostream> #include<string> #include<cstdio> #include<cstring> #include<v

原创 博弈

首先,先拿一個例題介紹一下巴什博弈。(Bash Game) 最重要的公式n%(m+1)==0先手必敗否則後手必敗   http://acm.hdu.edu.cn/showproblem.php?pid=1846   像這樣2人採用最優策略

原创 Before an Exam

Tomorrow Peter has a Biology exam. He does not like this subject much, but d days ago he learnt that he would have to t

原创 計算幾何

計算幾何 基礎 向量叉乘 A (x1,y1)  B(x2,y2)  A×B= x1y2-x2y1 叉乘判斷向量位置, P×Q < 0  P在 Q 左側, P×Q > 0  P在 Q 右側, P×Q > 0  P與 Q 共線

原创 並查集

並查集最主要的是查找元素是否在同一棵樹上,或者看看所給的元素分佈在幾棵樹上。 最主要的是兩個函數一個是尋找根節點的函數,另一個則是壓縮路徑的函數,根節點有一定的特性, 根節點的數等於它本身。 附上兩個最基本的函數: 1.尋找根節點的函數;

原创 Registration system

A new e-mail service "Berlandesk" is going to be opened in Berland in the near future. The site administration wants to

原创 最小生成樹kruskal算法 克魯斯卡爾算法

1、Kruskal算法描述       Kruskal算法是基於貪心的思想得到的。首先我們把所有的邊按照權值先從小到大排列,接着按照順序選取每條邊,如果這條邊的兩個端點不屬於同一集合,那麼就將它們合併,直到所有的點都屬於同一個集合爲止。至

原创 迪傑斯特拉算法 最短路

#include<stdio.h> #include<string.h> #include<algorithm> int m,n; int from[999][999]; int ans; int vis[999],dis[999];

原创 素數篩選法

1.普通的素數篩選法(最先接觸到的): #include<stdio.h> #include<stdlib.h> #include<iostream> #include<string> #include<cstdio> #include

原创 Codeforces Round #529 (Div. 3)

https://codeforces.com/contest/1095/problem/A 題意:給定一個長度爲n的加密過的字符串,找到他的原來的序列,加密的過程就是第一個字符輸出一個,第二個字符輸出兩個,第三個輸出三個,依次; 思路:設

原创 Codeforces Round #536 (Div. 2)

https://codeforces.com/contest/1106/problem/A 題意:給定一個n*n的字符串,看能由x組成幾個 “X”。 思路:直接遍歷一遍,然後將能夠組成的X的找出來 #include<bits/stdc+

原创 Codeforces Round #531 (Div. 3)

https://codeforces.com/contest/1102/problem/A 題意:給定一個數n,將1-n分成兩組,使得兩組數的差值最小,輸出最小差值。 思路:根據推理髮現,隨着n的增大,是有規律出現的,跟4的倍數有關係。

原创 Codeforces Round #535 (Div. 3)

https://codeforces.com/contest/1108/problem/A 這個題的意思就是給你兩個區間,在第一個區間中找一個點a,使l1<=a<=r1,在第二個區間中找一個點b,使l2<=b<=r2。 很簡單,直接把兩個

原创 小樂樂下象棋

鏈接:https://ac.nowcoder.com/acm/contest/301/F 題目描述 小樂樂一天天就知道玩,這一天又想玩象棋。 我們都知道馬走日。 現在給定一個棋盤,大小是n*m,把棋盤放在第一象限,棋盤的左下角是(0,0)