1 条题解
-
0
C :
#include<stdio.h> #include<string.h> char v[9],g[9][9]; int n,ans; void dfs(int k,int cur) { int i,j; for(i=cur-1;i>k-2;i--) { for(j=0;j<n;j++) if(g[i][j]=='#'&&v[j]==0) if(i&&k>1) { v[j]=1; dfs(k-1,i); v[j]=0; } else ans++; } } int main() { int k,i; while(scanf("%d%d",&n,&k)!=EOF,n!=-1||k!=-1) { memset(v,0,sizeof(v)); for(i=0;i<n;i++) scanf("%s",g[i]); ans=0; dfs(k,n); printf("%d\n",ans); } return 0; }
C++ :
#include<stdio.h> #include<string.h> char v[9],g[9][9]; int n,ans; void dfs(int k,int cur) { int i,j; for(i=cur-1;i>k-2;i--) { for(j=0;j<n;j++) if(g[i][j]=='#'&&v[j]==0) if(i&&k>1) { v[j]=1; dfs(k-1,i); v[j]=0; } else ans++; } } int main() { int k,i; while(scanf("%d%d",&n,&k)!=EOF,n!=-1||k!=-1) { memset(v,0,sizeof(v)); for(i=0;i<n;i++) scanf("%s",g[i]); ans=0; dfs(k,n); printf("%d\n",ans); } return 0; }
Pascal :
var a:array[1..8,1..8]of char; c:array[1..8]of boolean; i,j,n,m,k,ans,l:longint; procedure go(t:longint); var i:longint; begin if t>n then exit; for i:=1 to n do if c[i] and (a[t,i]='#') then begin c[i]:=false; inc(m); if m=k then begin inc(ans);end; if m<k then go(t+1); dec(m); c[i]:=true; end; if m<k then go(t+1); end; begin readln(n,k); while not((n=-1)and(k=-1)) do begin fillchar(c,sizeof(c),true); for i:=1 to n do begin for j:=1 to n do read(a[i,j]); readln; end; ans:=0; m:=0; go(1); writeln(ans); readln(n,k); end; end.
Python :
def space_input(p=''): s=raw_input(p).split() for i in range(len(s)): s[i]=eval(s[i]) return tuple(s) class Mymap: def __init__(self,l,n): self.cnum=1 for i in range(1,n+1): self.cnum*=i self.num=n self.resultnum=0 self.linenum=l self.line=set(range(l)) self.map=[[' ' for i in range(l)] for i in range(l)] def getmap(self): for i in range(self.linenum): line=raw_input() for j in range(self.linenum): self.map[i][j]=line[j] def getresult(self,num,x,y): if num: for i in x: for j in y: if self.map[i][j]=='#': self.getresult(num-1,x-{i},y-{j}) else: self.resultnum+=1 l,n=space_input() while l!=-1 or n!=-1: a=Mymap(l,n) a.getmap() a.getresult(a.num,a.line,a.line) print a.resultnum/a.cnum l,n=space_input()
- 1
信息
- ID
- 645
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者