| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5537 人关注过本帖
标题:第十八期编程比赛
只看楼主 加入收藏
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 

你都没办法接收多组数据

2007-09-15 09:28
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用ACKing在2007-9-15 9:25:54的发言:
楼上的明显不会通过。。。

题目的意思是不是求最短路径?


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-09-15 09:28
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用ACKing在2007-9-15 9:28:36的发言:

你都没办法接收多组数据

是那个样了,我在vijos不需要这样...oh,谢谢了,我再去试试


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-09-15 09:29
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 
你先改成能接受多组数据先啦
2007-09-15 09:30
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

0.15S Wrong Answer....
#include<stdio.h>
#include<string.h>
/*
'.'代表没有怪物,'o'代表有小怪,'O'代表大怪,'#'代表的是不能走的石头
*/
struct
{
char mapnow[8][8];
char small;
char x,y;
char l;
} line[150000]={0};
int linenow=0;
int maxline=1;
int main(void)
{
int m,mm,n,nn,k;
int i,j;
while(scanf("%d%d%d",&m,&n,&k)!=EOF)
{
linenow=0;
maxline=1;
memset(line,0,sizeof(line));
for(i=0;i<m;i++) scanf("%s",line[linenow].mapnow[i]);
if(line[linenow].mapnow[0][0]=='o') line[linenow].small++;
if(line[linenow].mapnow[0][0]=='O')
if(k==0) line[linenow].small++; else { printf("-1"); goto end; }
if(line[linenow].mapnow[0][0]=='#') { printf("-1"); goto end; }
line[linenow].mapnow[0][0]='.';
line[linenow].x=0;
line[linenow].y=0;
line[linenow].l++;
if(line[linenow].x==m && line[linenow].y==n) { printf("1"); goto end; }
mm=m-1;
nn=n-1;
for(linenow=0;linenow<maxline;linenow++)
{
if(line[linenow].x<mm)
{
if(line[linenow].mapnow[line[linenow].x+1][line[linenow].y]=='o')
{
line[maxline]=line[linenow];
line[maxline].x++;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].small++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x+1][line[linenow].y]=='.')
{
line[maxline]=line[linenow];
line[maxline].x++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x+1][line[linenow].y]=='O' && line[linenow].small>=k)
{
line[maxline]=line[linenow];
line[maxline].x++;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
}
if(line[linenow].x>0)
{
if(line[linenow].mapnow[line[linenow].x-1][line[linenow].y]=='o')
{
line[maxline]=line[linenow];
line[maxline].x--;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].small++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x-1][line[linenow].y]=='.')
{
line[maxline]=line[linenow];
line[maxline].x--;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x-1][line[linenow].y]=='O' && line[linenow].small>=k)
{
line[maxline]=line[linenow];
line[maxline].x--;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
}
if(line[linenow].y<nn)
{
if(line[linenow].mapnow[line[linenow].x][line[linenow].y+1]=='o')
{
line[maxline]=line[linenow];
line[maxline].y++;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].small++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x][line[linenow].y+1]=='.')
{
line[maxline]=line[linenow];
line[maxline].y++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x][line[linenow].y+1]=='O' && line[linenow].small>=k)
{
line[maxline]=line[linenow];
line[maxline].y++;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
}
if(line[linenow].y>0)
{
if(line[linenow].mapnow[line[linenow].x][line[linenow].y-1]=='o')
{
line[maxline]=line[linenow];
line[maxline].y--;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].small++;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x][line[linenow].y-1]=='.')
{
line[maxline]=line[linenow];
line[maxline].y--;
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
else
if(line[linenow].mapnow[line[linenow].x][line[linenow].y-1]=='O' && line[linenow].small>=k)
{
line[maxline]=line[linenow];
line[maxline].y--;
line[maxline].mapnow[line[maxline].x][line[maxline].y]='.';
line[maxline].l++;
if(line[maxline].x==mm && line[maxline].y==nn) { printf("%d",line[maxline].l); goto end; }
//printf("%d ",line[maxline].l);
maxline++;
}
}
if(maxline>100000) { printf("-1"); goto end; }
}
end: ;
}
return 0;
}

我用样例和自己的数据测的没有问题啊,ACM不像OI那样,还需要多组数据测试...


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-09-15 09:40
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 
一般的oj都能用多文件单case的。。。比如pku就可以,那样就和oi的差不多了。。。其他的有些可能不用多文件。。就要用eof判断
2007-09-15 09:45
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 
还有。。。你没有换行的符号
2007-09-15 09:46
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 
8 8 5
oo....oO
....Oo.o
o.OOO...
o#O.#.#.
oo....oO
....Oo.o
o.OOO...
o#O.#.#.

这组数据你错了
2007-09-15 09:48
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

楼上讲下思路


2007-09-15 09:49
ACKing
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-4
收藏
得分:0 

开始我用的是广搜,发现很难记录状态,改成深搜咯。。。基本也就是我上面所说的,记录当前经过的路径的长度和打败的怪物的数目

2007-09-15 09:52
快速回复:第十八期编程比赛
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017141 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved