摘要:
//Time 906ms, Memory 384K#include
#include
int vis[110][110],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0},n,m,t,min,num,road[6000],rd[6000];
char map[110][110];
void f(int x,int y)
{ int i,nx,ny,p; if(x==n-1 && y==m-1) { for(i=0;i=vis[n-1][m-1]) || num>6000) return; num++; for(i=0;i... 阅读全文
摘要:
#include
#include
int a[100000][2],vis[100000],i,count;
int f(int p,int k)
{ int j,t; for(j=k+1;j-ki) t=j-i-1; else t=j; if(p==a[t][0] && !vis[a[t][1]]) { vis[a[t][1]]=1;count++; if(f(a[t][1],t)==0) return 0; } else if(p==a[t][... 阅读全文
摘要:
//Time 531ms,Memory 1228K#include
#include
int map[50][50][50],t,t1,vis[50][50][50],dx[6]={0,0,0,0,1,-1},dy[6]={0,1,0,-1,0,0},dz[6]={1,0,-1,0,0,0},a,b,c;
void f(int x,int y,int z)
{ int i,nx,ny,nz;t1++; for(i=0;ia-1 || nyb-1 || nzc-1 || map[nx][ny][nz]==1) continue; if(vis[nx][ny][nz... 阅读全文
摘要:
#include
#include
int main()
{ int i,j,k,n,a[18][301]; memset(a,0,sizeof(a)); for(i=0;i<301;i++) a[1][i]=1; for(i=2;i<18;i++) { for(j=0;j<301;j++) for(k=0;j+i*i*k<301;k++) a[i][j+i*i*k]+=a[i-1][j]; } while(scanf("%d",&n)==1 && n... 阅读全文
摘要:
#include
int fa[10001],di[10001],n,m;
int find(int v)
{ if(fa[v]!=1 && fa[v]!=v) fa[v]=find(fa[v]); return fa[v];
}
int find1(int v)
{ if(di[v]!=1 && di[v]!=v) di[v]=find1(di[v]); return di[v];
}
void Unio(int x,int y)
{ if(x>1) fa[x]=find(y); if(y>1) di[y]=fi... 阅读全文