POJ 1321
2015-06-09 13:56
316 查看
#include<iostream> #define MAXN 10 using namespace std; char _m[MAXN][MAXN]; bool mark[MAXN]; int n; void DFS(int row); int k; int ans; int give_num(); int main() { //freopen("acm.acm","r",stdin); int i; int j; while(cin>>n>>k) { ans = 0; // memset(mark,false,sizeof(mark)); for(i = 0; i < MAXN; ++ i) { mark[i] = false; } if(n == -1 && k == -1) { break; } for(i = 0; i < n; ++ i) { for(j = 0; j < n; ++ j) { cin>>_m[i][j]; } } if(k == 1) { cout<<give_num()<<endl; continue; } for(i = 0; i < n; ++ i) { if(n-i < k) { break; } for(j = 0; j < n; ++ j) { if(_m[i][j] == '#') { mark[j] = true; -- k; DFS(i+1); ++ k; mark[j] = false; } } } // cout<<k<<" - "<<endl; cout<<ans<<endl; } } int give_num() { int i; int j; int sum = 0; for(i = 0; i < n; ++ i) { for(j = 0; j < n; ++ j) { if(_m[i][j] == '#') { ++ sum; } } } return sum; } void DFS(int row) { int i; if(n - row < k) { return; } for(i = 0; i < n; ++ i) { if(_m[row][i] == '#' && !mark[i]) { if(k - 1 == 0) { ++ ans; // DFS(row+1); continue; } -- k; mark[i] = true; DFS(row+1); mark[i] = false; ++ k; // DFS(row+1); } } // if(k - 1 == 0) { DFS(row+1); } }
相关文章推荐
- POJ 1317
- POJ 1325
- centos下 时间同步设置
- C# CHART控件的相关操作备忘
- 机器学习&计算机视觉等资源整理
- Android dumpstate 工具解析
- leetcode 124 【树直径】
- iOS项目的持续集成与管理
- POJ 1316
- Linux下Apache配置局域网访问出现的问题
- 韦老师linux_3.42内核没有配置网卡,已解决
- javascript学习笔记
- Tessellation Overview
- The Direct3D 11 programmable pipeline
- Java多区域部署时能自动升级的一个小演示程序
- Magento使用phpexcel导出 商品订单 /订单条目表sales_flat_order_item
- POJ 1298
- POJ 1287
- POJ 1274
- h264视频编码的MP4格式视频无法在网页中的adobe flash player中播放