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 |
这题要笑死个人,TLE了我一个多小时我没找到错误,跟Java一样这么矫情?#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> using namespace std; char m[10][10]; int cnt,n,k; int q[10]; void dfs(int row,int num) { if(num >= k){ cnt++; return ; } int i,j; for(i = row;i < n;i++){ //我下面传row,这里row+1有什么问题嘛? for(j = 0;j < n;j++){ if(q[j] == 0 && m[i][j] != '.'){ q[j] = 1; dfs(i+1,num+1); q[j] = 0; } } } } int main() { while(~scanf("%d%d",&n,&k)){ if(n == -1 && k == -1){ break; } for(int i = 0;i < n;i++){ scanf("%s",m[i]); } memset(q,0,sizeof(q)); cnt = 0; dfs(0,0); printf("%d\n",cnt); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator