斯波吉购物结果错误
Spoj Shopping wrong result
有人能给我一个让我的代码崩溃的棘手测试示例吗。任务-->http://www.spoj.com/problems/SHOP/我在代码中找不到任何错误,所以我请求您的帮助。代码:http://pastebin.com/6wuFWWJH
#include <stdio.h>
#include <queue>
#include <algorithm>
using namespace std;
struct koord
{
int x;
int y;
koord(int _x=0,int _y=0)
{
x=_x;
y=_y;
}
};
queue<koord>Q;
bool bio[150][150];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int dist[150][150];
char polje[150][150];
int a,b;
void bfs(int a1,int b1)
{
Q.push(koord(a1,b1));
bio[a1][b1]=true;
while(!Q.empty())
{
koord pos=Q.front();
Q.pop();
for(int i=0;i<4;++i)
{
koord dalje=koord(pos.x+dx[i],pos.y+dy[i]);
if(dalje.x>=0 && dalje.x<b && dalje.y>=0 && dalje.y<a)
{
if(polje[dalje.x][dalje.y]!='X' || polje[dalje.x][dalje.y]!='S')
if(bio[dalje.x][dalje.y]==false)
{
if(polje[dalje.x][dalje.y]=='D')
{
bio[dalje.x][dalje.y]=true;
dist[dalje.x][dalje.y]=dist[pos.x][pos.y];
Q.push(dalje);
}
else
{
bio[dalje.x][dalje.y]=true;
dist[dalje.x][dalje.y]=dist[pos.x][pos.y]+(polje[dalje.x][dalje.y]-'0');
Q.push(dalje);
}
}
if(polje[dalje.x][dalje.y]=='D' && dist[dalje.x][dalje.y]>dist[pos.x][pos.y])
{
dist[dalje.x][dalje.y]=dist[pos.x][pos.y];
Q.push(dalje);
}
else if(dist[dalje.x][dalje.y]>dist[pos.x][pos.y]+(polje[dalje.x][dalje.y]-'0'))
{
dist[dalje.x][dalje.y]=dist[pos.x][pos.y]+(polje[dalje.x][dalje.y]-'0');
Q.push(dalje);
}
}
}
}
}
int main()
{
scanf("%d%d",&a,&b);
while(a!=0 && b!=0)
{
int c=0,d=0,e=0,f=0;
for(int i=0;i<b;++i)scanf("%s",polje[i]);
//scanf("n");
for(int i=0;i<b;++i)
for(int j=0;j<a;++j)
{
if(polje[i][j]=='S'){c=i;d=j;}
if(polje[i][j]=='D'){e=i;f=j;}
}
bfs(c,d);
printf("%dn",dist[e][f]);
for(int i=0;i<150;++i)
for(int j=0;j<150;++j){bio[i][j]=false;dist[i][j]=0;}
Q.empty();
scanf("%d%d",&a,&b);
}
return 0;
}
我尝试了一些奇怪的测试示例,比如:3 3S9D1X1111但我的程序打印了5,这很好。所以我需要你的帮助。
这里有错误:
if(polje[dalje.x][dalje.y]!='X' || polje[dalje.x][dalje.y]!='S')
应该是
if(polje[dalje.x][dalje.y]!='X' && polje[dalje.x][dalje.y]!='S')
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- Static_cast转换为错误的数据类型,但结果仍然正确?
- C++ 犰狳库中的sort_index()函数给出了错误的结果
- C++:使用类在向量中搜索特定元素时,我得到了错误的结果
- 检查 n2 是否是 n1 的倍数后结果错误,但根本没有错误
- 为什么我的性能基准给了我错误的结果?
- 使用具有默认参数的函数模板进行 decltype 会使结果混乱(一个有趣的问题或 gcc 的错误)
- 斐波那契检验(C++)的结果错误
- 在发布版本中划分两个双精度的结果错误
- 2D FFT后的图像结果错误
- 计算文本文件中的单个字母并打印结果 - 错误的输出 C++
- C++字符和 int 之间的转换,结果错误
- char*与std字符串的比较结果错误
- 斯波吉购物结果错误
- 超载"+"操作员,结果错误?
- 执行高斯消去程序时结果错误
- hash_djb2 PHP结果错误
- 按位操作比较结果错误
- 使用'if'语句和"<<"时的结果错误,'>>'运算符比较 3 个整数