poj 1226我的代码为什么wa,求hack,给出测试数据,或者思路的错误

问题描述

poj 1226我的代码为什么wa,求hack,给出测试数据,或者思路的错误

代码如下:
//#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 105;
int next[maxn];
int ans[maxn];
string s[maxn];
void getnext(string a)
{
int i = 0;int j = -1;
next[0] = -1;
while(i<a.length()){
if(j == -1||a[i] == a[j])
{
i++;j++;
next[i] = j;
}
else
j = next[j];
}
}
int kmp(string a,string b){
getnext(a);
int ans = 0;
int al = a.size();
int bl = b.size();
//cout<<b<<endl;
int i = 0;int j = 0;
while(i<bl){
if(j == -1||a[j] == b[i]){
//cout<<i<<" "<<j<<a[j]<<b[i]<<endl;
i++;j++;

    }
    else{
        j = next[j];
    }
     ans = max(ans,j);
    if(j == al)
        j = next[j];
}
return ans;

}
string jianyi(string a){
string b = a;
reverse(b.begin(),b.end());
b = b.substr(0,b.size()-1);
reverse(b.begin(),b.end());
return b;
}
int main() {
int T;
cin>>T;
while(T--){
memset(ans,0x3f,sizeof(ans));
int n;
cin>>n;
if(n == 0) {cout<<"0"<
if(n == 1){
cin>>s[0];
cout<
continue;
}
int mini = 0;
int minsize = 0x3f3f3f;
for(int i = 0;i
cin>>s[i];
if(s[i].size()<minsize)
{
minsize = s[i].size();
mini = i;
}
}
string a = s[mini];
string b = a;
reverse(b.begin(),b.end());

    for(int i = 0;i<s[mini].length();i++){
        for(int j = 0;j<n;j++){
                if(j == mini)continue;
               // cout<<i<<" "<<kmp(a,s[j])<<" "<<kmp(b,s[j])<<endl;
            ans[i] = min(ans[i],max(kmp(a,s[j]),kmp(b,s[j])));
        }
       // cout<<ans[i]<<endl;
       a = jianyi(a);
       b =  jianyi(b);
    }
    int ant = 0;
    for(int i = 0;i<s[mini].length();i++){
            //cout<<ans[i];
        ant = max(ant,ans[i]);
    }
    cout<<ant<<endl;
    }

return 0;

}

解决方案

http://bbezxcy.iteye.com/blog/1407379
http://blog.csdn.net/xingyeyongheng/article/details/9274461

时间: 2024-12-16 02:54:20

poj 1226我的代码为什么wa,求hack,给出测试数据,或者思路的错误的相关文章

java-杭电acm1106为什么就是WA求解释,看了大牛的思想,结果输出正确

问题描述 杭电acm1106为什么就是WA求解释,看了大牛的思想,结果输出正确 排序 Problem Description 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于

代码-各位大大求解答 新人求罩

问题描述 各位大大求解答 新人求罩 Hello World for U (20) Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, "helloworld" can be printed as: h d e l l r lowo That is, the characters must be printed i

c++-C#与C++位图保存方式的区别是什么?如何将C#中位图buffer正确传到C++代码中?求大神指导

问题描述 C#与C++位图保存方式的区别是什么?如何将C#中位图buffer正确传到C++代码中?求大神指导 C#中位图保存方式与C++中位图保存方式的区别是什么?如何将C#中位图buffer正确传到C++代码中?求大神指导 解决方案 C++中位图分为32/24/16位的三种位图数据存储方式,很多时候C++中主要使用32位和24位,如果你没有特别声明的话.C#中的位图 也多数是32位的.这些所谓的32位或者24位说的是位图中一个像素用多少位来表示,一个像素一般包含RGB三基色,也就是红(red)

孙鑫-Visual C++的一段代码搞不懂求解释

问题描述 Visual C++的一段代码搞不懂求解释 说一下自己的理解.题目是孙鑫老是的文本输出的例子. 1:GetBkColor得到背景白色,然后SetTextColor(白色)把背景白色设置为文字颜色.跟着clr应该是赋值得到白色了吧,但是F5看的时候是黑色,就要原文字颜色.我这么理解应该错了 1 COLORREF clr=dc.SetTextColor(dc.GetBkColor()); //GetBkColor属于dc对象,改变dc中的背景值(白色).然后SetTextColor用白色值

树形菜单求助 ,不知道从何下手。求大咖们帮帮讲讲思路 要是有代码就更好了。

问题描述 树形菜单求助 ,不知道从何下手.求大咖们帮帮讲讲思路 要是有代码就更好了. 左边为国家的省份,子菜单为省份的市级单位,右边卫市级单位的区.数据是从数据库区的.括号内的数字为选中的个数.从数据库去出来的数据类似于 id:01, name:黑龙江省,市区的LIST. 在前台页面怎遍历这个树形菜单还可以联动 求助大咖们 图片地址:http://a.hiphotos.bdimg.com/album/s%3D1000%3Bq%3D90/sign=3cccf467caef7609380b9d9f1

java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神。

问题描述 java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神. 这是代码 主类 public class Main { public static void main(String[] args) throws FileNotFoundException { int i = 0; Manage m=new Manage(); Scanner sc=new Scanner(System.in); ArrayList List=new ArrayList<Student>();

c++-C++求最大加权独立集。只要思路就好了,代码我自己写

问题描述 C++求最大加权独立集.只要思路就好了,代码我自己写 假设有A,它提供一个干扰半径,B为一个集合,集合中每一个元素提供位置坐标和一个权重.如果两个元素半径小于干扰半径,则不能放入一个集合中,如果两位置距离大于等于干扰半径,则可以.求出最大权重的集合,集合的权重为集合中元素的权重之和. 我已经想了好久好久了QAQ 但是写出来的一个办法会导致内存泄漏. 拜托大神给一个思路就好了,代码我自己写. 解决方案 参考:http://zhidao.baidu.com/link?url=vfGzj4f

vb代码实现计算器的小数点功能怎么实现,附代码,新手求解决?

问题描述 vb代码实现计算器的小数点功能怎么实现,附代码,新手求解决? Dim current As Double Dim prev As Double Dim choice As String Dim temp As String Dim PointFlag As Boolean ' 判断是否已有小数点 Private Sub ac_Click() Text1.Text = "" choice = "ac" current = 0 End Sub Private

printf-为什么这一小段代码总是运行时错误 求大家帮帮忙

问题描述 为什么这一小段代码总是运行时错误 求大家帮帮忙 #include<stdio.h>#include<string.h>int main(){ int t; scanf(""%d""&t); while(t--) { int n; scanf(""%d""&n); while(n--) { char a[]="">+""; char