原创 poj 2192 字符串匹配

poj 2192 判斷s1,s2是否能組成s3,可以全部匹配,比較簡單,直接判斷就行 #include<stdio.h> #include<string.h> int dp[1010][1010]; int l1,l2; char s1[

原创 zoj 1100 鋪磚 狀態壓縮

1、st中存的是每一行擺放的所有可能,0是空着,1是佔着,st[i][0]中存一行的可能的狀態即from,st[i][1]中存與其匹配的下一行狀態即to; 2、dfs中from是一行中前n個格子的狀態,to是與之吻合的狀態; 3、因爲只看

原创 數字遊戲 qsort

數字遊戲 #include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void*_a,const void*_b) { int i,j; ch

原创 uva 11081 Strings 字符串匹配

uva 11081 #include<stdio.h> #include<string.h> #define s 66 char s1[s],s2[s],s3[s]; int f1[s][s][s],f2[s][s][s],f[s][s]

原创 uva 10723 uva 10723 Cyborg Genes求s1,s2的最短合串即合串的組成方法數

已知兩個母串s1,s2,求它們最短合串的長及組成該長度合串的方法數,用LCS解 dp[i][j]存s1[i]與s2[j]最短的合串長度,初始化dp[i][0]=dp[0][i]=i 1、當s1[i]==s2[j]時,dp[i][j]=dp

原创 sdut 1961 dfs遞歸

Image Compression 像素按精確度壓縮,直接dfs即可解 #include<stdio.h> #include<string.h> int w,t; char map[70][70]; int f(int x,int y,

原创 uva 10534 Wavio Sequence LIS 棧實現nlogn

#include<stdio.h> #include<string.h> #define maxn 10010 int st[maxn],z[maxn],f[maxn],a[maxn],n,top; int min(int a,int b

原创 hdu 3555Bomb找49

首先把所有的數字分成三類,含有49的,不含49的,以9開頭但是不含49的 先找規律求出前所有可能的位數中三種情況的個數 1、含有49,dp[i][0]=dp[i-1][0]*10-dp[i-1][1]     在前i-1位前添上0-9十個

原创 zoj 1425 最多匹配交叉 LCS

zoj 1425 要注意題目的要求,不然就會想得很複雜 1、要求得匹配線是成對交叉的,只是兩兩相交 2、一對交叉線不能是4個相同的數字 知道第一點後會發現LCS的方法可以解決這類問題,按照i j循環,每次只看新加的b[j],每個b[j]都

原创 uva 10163 - Storage Keepers 每組最多選一個的分組揹包

uva 10163         有N個倉庫,總共有M個人來應聘倉庫看守員,每個人的能力是P,一個人可以看守多個倉庫(設k個),每個倉庫只能被一個人看,倉庫的安全係數爲p/k,公司的安全底線爲最低的倉庫安全係數,每個人每月的薪水是P,求

原创 uvalive4467

E - Electric Bill Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Descripti

原创 uva 10280 Old Wine Into New Bottles 有剪枝的完全揹包

uva 10280 1、這道題如果直接把每個酒瓶的可用容量來做完全揹包的話會超時,但是由最低的容量不低於95%,最高的容量不超過99%,由於容量的連續性有一些規律可循,可藉此優化:    考慮任意一種瓶子能夠將酒全裝滿的情況,最小容量m

原创 uva 1424 簡單DP

求把所給路徑改成合法路徑需要的最小修改次數 #include<stdio.h> #include<string.h> #define maxn 1010 #define INF 1<<30 char str[maxn]; int dp[m

原创 uva 11584 把字符串分成最少的迴文段

#include<stdio.h> #include<string.h> #define maxn 1010 #define INF 1<<30 char str[maxn]; int dp[maxn]; char vis[maxn][

原创 uva 11008

uva 11008 狀態壓縮+記憶化搜索 #include<stdio.h> #include<string.h> #define max 20 #define maxn 2<<18 #define INF 1<<30 int min(i