HDU 5523 Game(模拟)
2015-11-01 16:52
253 查看
题目地址:点击打开链接
思路:这道题坑还是比较多,比赛的时候忘考虑了都为1的情况结果一直wrong,hack别人的时候才知道,今天本来1A的,结果wrong了,原来我里面还有一个错误的部分
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
int n,s,t;
while(scanf("%d%d%d",&n,&s,&t) != EOF)
{
if(n == 1 && s == 1 && t == 1)
printf("0\n");
else if(s == t)
printf("-1\n");
else if((s == 1 && t == n) || (t == 1 && s == n))
printf("0\n");
else if(s == t + 1 || t == s + 1)
printf("1\n");
else if(s == 1 || s == n)
printf("1\n");
else
printf("2\n");
}
return 0;
}
错误代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
int n,s,t;
while(scanf("%d%d%d",&n,&s,&t) != EOF)
{
if(n == 1 && s == 1 && t == 1)
printf("0\n");
else if(s == t)
printf("-1\n");
else if((s == 1 && t == n) || (t == 1 && s == n))
printf("0\n");
else if(s == t + 1 || t == s + 1)
printf("1\n");
else if(s > 1 && t > 1 && s < n && t < n)
printf("2\n");
else if(t == n || t == 1)
printf("1\n");
else if(s == 1 || s == n)
printf("1\n");
}
return 0;
}
我这个错误的原因是当t==1 || t == n 时输出的是1,而不是2,我考虑错了
思路:这道题坑还是比较多,比赛的时候忘考虑了都为1的情况结果一直wrong,hack别人的时候才知道,今天本来1A的,结果wrong了,原来我里面还有一个错误的部分
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
int n,s,t;
while(scanf("%d%d%d",&n,&s,&t) != EOF)
{
if(n == 1 && s == 1 && t == 1)
printf("0\n");
else if(s == t)
printf("-1\n");
else if((s == 1 && t == n) || (t == 1 && s == n))
printf("0\n");
else if(s == t + 1 || t == s + 1)
printf("1\n");
else if(s == 1 || s == n)
printf("1\n");
else
printf("2\n");
}
return 0;
}
错误代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
int n,s,t;
while(scanf("%d%d%d",&n,&s,&t) != EOF)
{
if(n == 1 && s == 1 && t == 1)
printf("0\n");
else if(s == t)
printf("-1\n");
else if((s == 1 && t == n) || (t == 1 && s == n))
printf("0\n");
else if(s == t + 1 || t == s + 1)
printf("1\n");
else if(s > 1 && t > 1 && s < n && t < n)
printf("2\n");
else if(t == n || t == 1)
printf("1\n");
else if(s == 1 || s == n)
printf("1\n");
}
return 0;
}
我这个错误的原因是当t==1 || t == n 时输出的是1,而不是2,我考虑错了
相关文章推荐
- (NO.00002)iOS游戏精灵战争雏形(十二)
- (NO.00002)iOS游戏精灵战争雏形(十二)
- java读取csv文件
- 编译器(GNU & GCC & clang & llvm)
- 11、Swift语言中枚举类型的使用
- python str和repr 的区别
- 位bit——字节Byte???
- 犯过的C++错误: vector::swap()函数
- 1.初识c语言
- 《大道至简》第五章读后感
- 图像处理与计算机视觉:基础,经典以及最近发展(2)图像处理与计算机视觉相关的书籍
- 原码, 反码, 补码 详解
- uIP使用记录
- window常用命令45个!
- 怎么做一名合格的测试工程师
- Spring、Spring MVC、MyBatis
- phpstrom+xdebug 配置
- 关于Python的super用法研究(转)
- UFT自动化脚本关键字用法简介
- [sicily]1443. Printer Queue