原创 Mark一下讀入一行的代碼

getchar();         c=getchar();         while(c!='\n')         {          

原创 zoj3537 凸包,最優三角形,區間dp

昨天本來只是想刷個區間dp而以,然後碰到了這題 然後就用一下午學了凸包的判定和最優三角形 然後今天花了三個小時把這題AC了,也強化了自己對凸包,最優三角形和區間dp的理解 題意就是給你一個點集,如果這個點集中的點不能全部構成一個凸包的話,

原创 HDU6092(動態規劃思想)

其實咱們都做過給你k個數然後求這k個數有多少個子集的和等於k的題 那麼現在就是反過來了 那麼做法也是很神奇的 對於序列a,我的1的個數就是a[1]的個數 那麼如果我去掉所有的1,並且維護a序列的性質不變,那麼2的個數就是a[2] 那麼問題

原创 HDU6015(思維題)

題目意思就是給你一顆樹, Bob可以在樹上染色,就是選擇一個點,並且將其周圍的點塗黑 Alice可以將樹上的一個點塗白 Bob還可以做一個操作,就是剪枝,剪枝之後影響的只是塗黑的操作,就是比如我塗一個點本來可以把周圍的點全部染黑的,現在就

原创 求最短路即次短路模板,一條邊可以重複走的HDU6181

#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<iostream> #include<algorithm> #includ

原创 codeforces Round428PC

題意就是給你一棵樹,算他從根走到葉子的期望 這個題目給了我一個很重的教訓,就是我在寫這道題的時候把求期望算成了求平均值 然後就沒寫出來,接着就心態爆炸了 #include <iostream> #include <cstdio> #inc

原创 主席樹靜態查找區間第k小模板(並沒有傑少詳細)即講解

#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #defi

原创 最大流DFS(EK)算法模板

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> #defin

原创 斯大林數,k個物品,分到m種不同的盒子裏,有幾種分法(保證沒有空盒子)

long long s[maxn][maxn],c[maxn];//存放要求的Stirling數 const long long mod=1e9+7;//取模 void init()//預處理 { memset(s,0,size

原创 數位dp 求l-r(10進制) 在k進制中有多少個迴文數的模板

#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; #define LL long long

原创 卡特蘭數及其應用

摘自維基百科 Cn的另一個表達形式爲 遞推關係 {\displaystyle C_{0}=1\quad {\mbox{and}}\quad C_{n+1}=\sum _{i=0}^{n}C_{i}\,C_{n-i}\quad {

原创 廣西邀請賽PD(dp+矩陣加速)

這個題目也是很不容易啊,一直堅持不懈的推了一天,終於自己寫出來了 題意很簡單這裏就不說了 其實我們發現對於每個n只有5種結尾的情況,所以開始就想從這5個情況中找突破口 結果發現要麼會算重要麼會算少 然後就找了16種狀態,就是最後一列的狀態

原创 第三場多校 03 HDU6058

Kanade's sum 這個題目主要的思路是對的 就是計算每個數字出現的次數 然後我發現我們可以對每個數字,往左找k個比他大的,往右找k個比他大的 然後他們的位置之差乘起來就是出現的次數 等下會補個圖詳細解釋下 然而如果我們找

原创 玲瓏杯Round20PE

#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #defi

原创 最大流,kuangbin的最牛逼的模板

const int MAXN=20010;//點數的最大值 const int MAXM=880010;//邊數的最大值 const int INF=0x3f3f3f3f; struct Node { int from,to,n