目錄模板
zcmu1683 排列(不含重複數的全排列)
hdu1016 prime ring problem(素數環)
hdu1241 oil deposits(圖的dfs)
ny20 吝嗇的國度(圖的dfs)
zcmu2160 wjw和ly的雙人遊戲
foj1920 left mouse button
zoj2475 benny's compiler(有向圖是否存在環)
dfs對我來說好難qaq可能寫的太少了吧……還是得好好練練
void dfs()//引數用來表示狀態
if(越界或者是不符合法狀態)
return;
for(擴充套件方式)
}}
【題意】
給定乙個數,輸出乙個數的全排列。
【解題思路】
大概是最最基礎的dfs題了,做好標記,記錄好數字,每當c=n時輸出一次就好啦。
【**】
#includeusing namespace std;
int v[1005],a[1005],n;
void dfs(int c)
int main()}}
if(cnt==m)return sum;
else return 0;//若這些城堡中有城堡 需要攻擊的前城堡沒被攻擊過 則不能計算入內 所以返回0
}void dfs(int x,int c)
if(x==n+1)return;
v[x]=1;
dfs(x+1,c+1);//攻擊當前城堡
v[x]=0;
dfs(x+1,c);//不攻擊當前城堡
}int main()
return 0;
}
【題意】
掃雷。輸出滑鼠最少需要點幾次可以找到所有的雷。
【解題思路】
即當滑鼠點到0時,0的周圍所有數字都會出現,所以dfs找到每個0以及其周圍的數字作為1個聯通塊,並將它們做好標記,每多1個連通塊答案個數就+1,最後將沒有標記過且不是雷的個數再進行累加即可。
【**】
#include#includeusing namespace std;
const int maxn=15;
int n,d[8][2]=, , , , , , , };;
char s[15][15];
void dfs(int x,int y)
}int main()
if(edge[x][i])
}}int main()
int t;
scanf("%d",&t);
vis[t]=1;
flag=1;
dfs(t);
if(flag)printf("yes\n");
else printf("no\n");
}return 0;
}
dfs簡單題目
1 桐桐的全排列 可在 中國石油acm網 提交 description 今天,桐桐的老師布置了一道數學作業,要求列出所有從數字1到數字n的連續自然數的排列,要求所產生的任一數字 序列中不允許出現重複的數字。因為排列數很多,桐桐害怕寫漏了,所以她決定用計算機程式設計來解決。input 只有乙個整數n ...
c 尋找部分和題目 dfs入門
1.題目描述 n個正整數,每個數最多只能選一次,是否可以從中選出幾個數,使他們的和為target 例如 n 4,target 9 1 2 4 5 存在4 5 9 保證最多只有一種和為target的選法 即在上例中不會有如 3 6 4 5 的資料出現 1.1 輸入 輸入第一行兩個正整數n和target...
CTF題目整理
最近在整理一些ctf題目,遇到很多很有意思的東西,記錄下來 0x01 柵欄加密 柵欄加密法是一種比較簡單快捷的加密方法。柵欄加密法就是把要被加密的檔案按照一上一下的寫法寫出來,再把第二行的文字排列到第一行的後面。相應的,破譯方法就是把文字從中間分開,分成2行,然後插入。柵欄加密法一般配合其他方法進行...