| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:dfs一次过In Reply To:Re:dfs一次过 Posted by:2698022795 at 2019-09-27 21:32:52 > #include<iostream>
> using namespace std;
>
> const int maxn=9;
> char map[maxn][maxn];
> int ans;
> int n,k;
> int visit[maxn];
>
> void dfs(int x,int sum)
> {
> if(sum==k){
> //cout<<"sum="<<sum<<" k="<<k<<endl;
> ans++;
> return;
> }
> if(x==n+1){
> //cout<<"sum="<<sum<<" k="<<k<<endl;
> if(sum==k) ans++;
> return ;
> }
> for(int i=1;i<=n;i++){
> if(map[x][i]=='#'&&!visit[i]){
> // cout<<"map["<<x<<"]["<<i<<"]"<<endl;
> visit[i]=1;
> dfs(x+1,sum+1);
> visit[i]=0;
> }
> }
> dfs(x+1,sum);
> }
>
>
> int main()
> {
> while(scanf("%d%d",&n,&k)!=EOF&&(n!=-1||k!=-1))
> {
> getchar();
> for(int i=1;i<=n;i++)
> {
> for(int j=1;j<=n;j++)
> scanf("%c",&map[i][j]);
> getchar();
> }
>
> for(int i=1;i<=maxn;i++) visit[i]=0;
> ans=0;
>
> dfs(1,0);
> printf("%d\n",ans);
> }
>
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator