牛客编译器问题,求大神解决!!!!
为什么我在VS2012下运行的结果和牛客提供的编译器运行结果不一样?在VS2012下运行和答案完全相同,用牛客提供的就不行!求大神解决!
他第一个测试用例输出516,我在VS下输出516,用他的破编译器就是517.。妈的!!恶心
#include<iostream>
#include<string.h>
using namespace std;
//自顶向下,自顶向下每次求出一个结果都要保存
intHWC(char* str,intlow,inthigh,intarr[][1000])
{
if(!str || low < 0|| high < 0) return0;
if( low > high) return0;
if(low == high)
{
arr[low][high] = 1;
return1;
}
if(str[low] == str[high])
{
if(arr[low+1][high-1] == 0)
{
intr = HWC(str,low+1,high-1,arr) + 2;
arr[low][high] = r;
returnr;
}
else
{
arr[low][high] = arr[low+1][high-1] + 2;
returnarr[low][high];
}
}
else
{
if(arr[low][high-1] == 0&& arr[low+1][high] == 0)
{
intr =
max(HWC(str,low,high-1,arr),HWC(str,low+1,high,arr));
arr[low][high] = r;
returnr;
}
else
{
if(arr[low][high-1] == 0)
{
intr = HWC(str,low,high-1,arr);
arr[low][high-1] = r;
returnmax(arr[low][high-1],arr[low+1][high]);
}
elseif(arr[low+1][high] == 0)
{
intr = HWC(str,low+1,high,arr);
arr[low+1][high] = r;
returnmax(arr[low][high-1],arr[low+1][high]);
}
else
returnmax(arr[low][high-1],arr[low+1][high]);
}
}
}
intmain()
{
charstr[1001] = {0};
int(*arr_dp)[1000] = newint[1000][1000];
for(inti = 0;i<1000;i++)
{
for(intj = 0;j<1000;j++)
{
arr_dp[i][j] = 0;
}
}
while(gets(str))
{
intn = HWC(str,0,strlen(str)-1,arr_dp);
cout<<strlen(str)-n -1<<endl;
}
return0;
}