设为首页 加入收藏

TOP

130407周赛 (一)
2014-11-24 03:12:45 】 浏览:7386
Tags:130407 周赛

1001 哈密顿绕行世界问题


水题


[cpp]
int m ;
bool vis[100];
int aa = 0 ;
int mm[50][50];
int dp[100];
void dfs(int now , int nn)
{
dp[nn] = now;
if(nn == 19)
{
if(mm[now][m])
{
cout < for (int i = 0 ;i < 20 ;i ++)
cout <<" "< cout <<" "< aa ++ ;
}
}
for (int i = 1 ;i <= 20 ;i ++)
if(mm[now][i])
{
if(!vis[i])
{
vis[i] = 1 ;
dfs(i, nn + 1 );
vis[i] = 0 ;
}
}
}
int main()
{
mem(mm,0);
for (int i = 1 ; i <= 20 ; i ++ )
{
int a ,b , c ;
cin >> a >> b >> c ;
mm[i][a] = 1 ;
mm[i][b] = 1 ;
mm[i][c] = 1 ;
}
while(scanf("%d",&m) ,m )
{
aa = 1 ;
mem(dp,0);
mem(vis,0);
vis[m] = 1 ;
dfs(m,0);
}
return 0;
}

int m ;
bool vis[100];
int aa = 0 ;
int mm[50][50];
int dp[100];
void dfs(int now , int nn)
{
dp[nn] = now;
if(nn == 19)
{
if(mm[now][m])
{
cout < for (int i = 0 ;i < 20 ;i ++)
cout <<" "< cout <<" "< aa ++ ;
}
}
for (int i = 1 ;i <= 20 ;i ++)
if(mm[now][i])
{
if(!vis[i])
{
vis[i] = 1 ;
dfs(i, nn + 1 );
vis[i] = 0 ;
}
}
}
int main()
{
mem(mm,0);
for (int i = 1 ; i <= 20 ; i ++ )
{
int a ,b , c ;
cin >> a >> b >> c ;
mm[i][a] = 1 ;
mm[i][b] = 1 ;
mm[i][c] = 1 ;
}
while(scanf("%d",&m) ,m )
{
aa = 1 ;
mem(dp,0);
mem(vis,0);
vis[m] = 1 ;
dfs(m,0);
}
return 0;
}
1002 Red and Black

水题


[cpp]
bool vis[100][100];
char mm[100][100];
int n , m ;
int xx[4] = {0 ,0 ,1 ,-1};
int yy[4] = {1,-1,0,0};
int inmap(int x,int y )
{
if(x >= 0 &&x < m &&y >= 0 &&y < n)return 1;
return 0;
}
void dfs(int x ,int y )
{
for (int i = 0 ;i < 4 ; i ++)
{
int tx = x + xx[i];
int ty = y + yy[i];
if(inmap(tx,ty)&&!vis[tx][ty]&&mm[tx][ty] != '#')
{
vis[tx][ty] = 1 ;
dfs(tx,ty);
}
}
}
int main()
{

while(scanf("%d%d",&n,&m) ,(m + n ))
{
mem(vis,0);
for (int i = 0 ;i < m ;i ++){
scanf("%s",mm[i]);
}
for (int i = 0 ;i < m ;i ++)
{
for (int j = 0 ;j < n ;j ++)
if(mm[i][j] == '@')
{
vis[i][j] = 1 ;
dfs(i,j);
break;
}
}
int ans = 0 ;
for (int i = 0 ;i < m ;i ++)
{
for (int j = 0 ;j < n ;j ++)
if(vis[i][j])
ans ++;
}
cout < }
}

bool vis[100][100];
char mm[100][100];
int n , m ;
int xx[4] = {0 ,0 ,1 ,-1};
int yy[4] = {1,-1,0,0};
int inmap(int x,int y )
{
if(x >= 0 &&x < m &&y >= 0 &&y < n)return 1;
return 0;
}
void dfs(int x ,int y )
{
for (int i = 0 ;i < 4 ; i ++)
{
int tx = x + xx[i];
int ty = y + yy[i];
if(inmap(tx,ty)&&!vis[tx][ty]&&mm[tx][ty] != '#')
{
vis[tx][ty] = 1 ;
dfs(tx,ty);
}
}
}
int main()
{

while(scanf("%d%d",&n,&m) ,(m + n ))
{
mem(vis,0);
for (int i = 0 ;i < m ;i ++){
scanf("%s",mm[i]);
}
for (int i = 0 ;i < m ;i ++)
{
for (int j = 0 ;j < n ;j ++)
if(mm[i][j] == '@')
{
vis[i][j] = 1 ;
dfs(i,j);
break;
}
}
int ans = 0 ;
for (int i = 0 ;i < m ;i ++)
{
for (int j = 0 ;j < n ;j ++)
if(vis[i][j])
ans ++;
}
cout < }
}

1003 Oil Deposits

水题


[cpp]
int n , m ;
char mm[105][105];
int xx[8] = {0,0,1,-1,1,1,-1,-1};
int yy[8] = {1,-1,0,0,1,-1,1,-1};
bool vis[105][105];
int inmap(int x,int y)
{
if(x >= 0 &&x < n &&y >= 0 &&y < m && mm[x][y] != '*')
return 1;
return 0;
}
void dfs(int x, int y )
{
for (int i = 0 ;i < 8 ;i ++)
{
int tx = x + xx[i];
int ty = y + yy[i];
if(inmap(tx,ty)&&!vis[tx][ty])
{
vis[tx][ty] = 1;
dfs(tx,ty);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m) , (n + m ))
{
for (int i = 0 ;i < n ;i ++)
scanf("%s",mm[i]);
int ans = 0 ;
mem(vis,0);
for (int i = 0 ;i < n ;i ++)
{
for (int j = 0 ;j < m; j ++)
{
if(mm[i][j] == '@' && !vis[i][j])
{
ans ++;
dfs(i,j);
}
}
}
cout < }
}

int n , m ;
char mm[105][105];
int xx[8] = {0,0,1,-1,1,1,-1,-1};
int yy[8] = {1,-1,0,0,1,-1,1,-1};
bool vis[105][105];
int inmap(int x,int y)
{
if(x >= 0 &&x < n &&y >= 0 &&y < m && mm[x][y] != '*')
return 1;
return 0;
}
void dfs(int x, int y )
{
for (int i = 0 ;i < 8 ;i ++)
{
int tx = x + xx[i];
int ty = y + yy[i];
if(inmap(tx,ty)&&!vis[tx][ty])
{
vis[tx][ty] = 1;
dfs(tx,ty);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m) , (n + m ))
{
for (int i = 0 ;i < n ;i ++)
scanf("%s",mm[i]);
int ans = 0 ;
mem(vis,0);
for (int i = 0 ;i < n ;i ++)
{
for (int j = 0 ;j < m; j ++)
{
if(mm[i][j] == '@' && !vis[i][j])
{
ans ++;
dfs(i,j);
}
}
}
cout < }
}


1004 Can you solve this equation


水题


[cpp]
double cal(double x)
{
double c = 8 * x * x * x * x + 7 * x * x * x + 2 *

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇POCO C++库学习和分析 -- 随机数.. 下一篇golange 错误如下 Resource inter..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目