原创 容斥定理+鴿巢原理

                                 容斥定理+鴿巢原理   容斥定理   要計算幾個集合並集的大小,我們要先將所有單個集合的大小計算出來,然後減去所有兩個集合相交的部分,再加回所有三個集合相交的部分,再減去所

原创 F

題意:問n個點中是否存在兩對不同的點的曼哈頓距離相等。 題解:有的同學可能會想,直接算出每兩個點之間的曼哈頓距離,然後看看有沒有重複的就可以了,不過這個題上給的n是 1e5 那樣算的話一定超時,那麼應該怎麼辦呢,想一下,這個題上還給了一個

原创 B

題意: 給你一個集合M,裏面最多有10個非負數,問1~n-1中一共有多少個數可以被其中一個整除。 題解:容斥定理,這個題和C題幾乎一樣,我們只要在C的基礎上求個LCM就行了 代碼: #include<bits/stdc++.h> usi

原创 E

題意:題上說的很明白了。 題解:只要最大值能夠被隔開,那麼其他的所有的值就都能夠被隔開了,所以只要sum-max+1>=max 就是YES,否則就是NO; 代碼: #include<bits/stdc++.h> using namesp

原创 A

題意:就是把一個數字分成一個奇數和一個偶數相乘, 題解:水題: 代碼: #include<stdio.h> typedef long long ll; int main() { ll i,n,t,cnt,sum,m; scanf("

原创 CODE[VS]-1332

CODE[VS]-1332 基本上算是強;連通分量的板子題吧,只需要對最後的拓撲序稍微的操作一下就行了, 下面給出代碼。 #include<bits/stdc++.h> using namespace std; #define met(

原创 強聯通分量算法入門

強聯通分量,聽着名字挺高大上的,一直聽別人說但是自己也不知道是什麼東西,昨天晚上,看見別人在學習這個東西,閒來無事的無就也學了學。 強連通分量在圖論問題中得到廣泛的應用,往往可以將有向圖縮點,得到一個 DAG,於是避免了原圖中可能有環造成

原创 POJ-2186(強連通分量)

poj-2186 題意:每頭牛都想成爲牛羣中的紅人。給定N頭牛的牛羣和M個有序對(A, B)。(A, B)表示牛A認爲牛B是紅人。該關係具有傳遞性,所以如果牛A認爲牛B是紅人,牛B認爲牛C是紅人,那麼牛A也認爲牛C是紅人。不過,給定的有序

原创 大數模板

//大數相加 #include <stdio.h> #include <string.h> #define MAXN 100 int an1[MAXN+10]; int an2[MAXN+10]; char str1[MAXN+10];

原创 矩陣快速冪-構造矩陣

參考博文:https://blog.csdn.net/Akatsuki__Itachi/article/details/80443939 感覺矩陣快速冪也不是太難嗎,矩陣的乘法基本上都會吧,還有快速冪這也沒有啥難度,所以矩陣快速冪的板子其

原创 hdu-5667(矩陣快速冪)

前兩天就已經學習了矩陣快速冪,當時的我就學了個矩陣快速冪的模板,而且我還以爲我自己學會了,實在是太搞笑了,矩陣快速冪最難的地方就是構造矩陣,而我根本一點都不會構造矩陣,沒辦法,從新學唄, hdu-5667 這個題,我個人感覺也挺難的,因爲

原创 RMQ算法入門(dp)

在開始學LCA的時候,看別人的博客,知道了RMQ這個算法,在學LCA的時候會用的到,於是我就先把這個算法給學了,一百度,原來RMQ算法實現的功能,和線段樹差不多,還有這個算法也是dp,dp無處不在啊, RMQ(Range Minimum/

原创 矩陣快速冪模板

#include<stdio.h> #include<string.h> using namespace std; #define ll long long #define met(d,dd) memset(d,dd,sizeof(d

原创 洛谷P1706(dfs)

學dfs一年了,但是感覺還是不會,沒辦法,只有在學了,關鍵是我不能理解它的遞歸的思想,每次只要遞歸我就有點不太懂了,可能是自己太笨了吧,沒事,熟能生巧,既然不會,那我就在多刷幾道題就行了。 洛谷P1706 這個題的意思很簡單,大致意思就是

原创 數位dp(入門)

這一週一直在學dp,先學了一些簡單的dp,然後又學了狀壓dp,這次又學了數位dp,唉,感覺這dp是真的難,可能是我太菜了吧,沒辦法,慢慢學吧,本來準備一週把dp學完是不太可能了,因爲今天已經週六了,還是進入正題,說我們的數位dp吧。 數位