原创 DP(AC自動機) Keywords Search hdu222

AC自動機的算法參考:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html #include <stdio.h> #include <string.h> int tot;

原创 並查集+貪心 Conquer a New Region HDU 4118 && ZOJ 3659

據說是區域賽的題,拿到的時候可把我嚇壞了,沒想到是水水的一題 題意: 輸入N表示N個城市,再輸入N-1條路a,b,c,c是這條路的運載能力 計算以一個一個城市開始到各個城市運輸的最大量 輸入 5 1 2 1 2 3 1 2 4 1 4

原创 並查集 Corporative Network POJ 1962

輸入E X,表示查找X到根節點的距離;輸入I X Y表示將X連接至Y後(Y作爲父節點) 提示 1)兩點之間的距離要%1000,但是計算到根節點距離時不用%1000 #include <stdio.h> #include <string.h

原创 並查集 How Many Answers Are Wrong HDU 3038

一道略坑爹的並查集 輸入N M 表示一共多少個數,和數據組數 就下來M行 輸入a,b,c,表示從第a個數加到第b個數,和爲c(包括a,b) 計算出共有多少組矛盾的數據 提示 1)將和存在num[i]中,每次find就更新 #include

原创 AC自動機 病毒侵襲 hdu2896

和hdu2222題相似的水題 提示: 1)連着RE了好多發,沒想明白,看了一下網上題解才知道,輸入的不一定都是字母,所以next要開100!!!!!!! #include <stdio.h> #include <string.h> int

原创 並查集+歐拉回路+字典樹 Colored Sticks POJ 2513

輸入多組數據,每組數據兩種顏色,表示一根木頭兩端的顏色,現在要將這些木頭相連,要求相連部分顏色相同,問能否全部連通 提示 1)一個要判斷所有的木頭是否在一個集合中,即是否能相連 2)判斷一種顏色出現的數量 3)一棵樹如果只有0或2個點出現

原创 DP Sum of Different Primes POJ 3132

輸入n和k,使k個不相同的素數的和爲n,求共有多少組 提示 1)dp[i][j]中i表示當前的和,j表示含有素數的個數 #include <stdio.h> #include <string.h> int prime(int n)

原创 數論 Number Transformation HDU4952

已知n,k,操作k次,每次操作求大於n且能被次數i整除的最小的數 已知x*i,所以(i+1)*y>=x*i,y>=x-[x/(i+1)],當x<i+1時,y的值不再改變,直接break,輸出y*k即可(x,y都是倍數) #include

原创 並查集 Junk-Mail Filter hdu 2473

輸入N M,表示N個點,M組數據 接下來M組數據 M表示連接A B S表示刪除點A 計算共有多少組邊 提示 1)刪除點不是將與它相連的邊剪斷,而只是消除這個點 2)開兩個數組,f[maxn]和p[maxn],表示i對應的真正值和i的父節點

原创 最長公共子序列DP Common Subsequence HDU 1159

子序列可以不連續#include <stdio.h> #include <string.h> int dp[1005][1005]; int max

原创 並查集 食物鏈 POJ1182

#include <stdio.h> #include <string.h> int f[50005]; int rank[50005]; //rank[x]值爲0,則與父節點同級,爲1則被父節點吃,爲2則吃父

原创 The World is a Theatre codeforces131c

題意:n個男生和m個女生選t個人,至少4男1女 提示:要用long long類型,不然會爆 方法一:直接排列組合 #include <stdio.h> #include <string.h> typedef long long ll;

原创 二叉樹先序遍歷

#include <stdio.h> #include <string.h> struct node { node *left,*right; char letter; node(){ left=NULL; right=N

原创 DP Good Sequences

給N個升序的數字,要求找出一個子串,每相鄰兩個數字不互質,求最長串的長度 提示 1)dp[i]表示到第i個數字的最長串 2)dp[i]用前i-1項中與第i項不互質的最大項更新 3)尋找與第i項不互質,即找與第i項有公公因數,所以建立數組d

原创 勒讓德定理

小於n,且能是a的倍數的數有[n/a]個,[0.3]=0,[-1.3]=-2 所以n!中含有質因數a個數:p=[n/a]+[n/a^2]+[n/a^3]+......