HDU-4300 Clairewd’s message
http://acm.hdu.edu.cn/showproblem.php?pid=4300
很难懂题意....
Clairewd’s message
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2839 Accepted Submission(s): 1096
Range of test data: T<= 100 ; n<= 100000;
#include<stdio.h>
#include<string.h>
int next[];
char s[],t[];
void getnext()
{
int i=,j=-;
next[]=-;
int len=strlen(s);
while(i<len)
{
if(s[i]==s[j]||j==-)
{
i++;
j++;
next[i]=j;
}
else
j=next[j];
}
}
int kmp()
{
int i=,j=;
int lens=strlen(s);
int lent=strlen(t);
while(i<lent&&j<lens)
{
if(s[j]==t[i]||j==-)
{
i++;
j++;
if(i==lent)
return j;
}
else
j=next[j];
}
return ;
}
int main()
{
int n,i,flag,j;
char str[],s1[];
scanf("%d",&n);
while(n--)
{
scanf("%s",str);
scanf("%s",s1);
int len=strlen(s1);
strcpy(t,s1+(len+)/);
printf("%s",s1);
for(i = ; s1[i]; i++)
{
for( j = ; j<; j++)
{
if(s1[i] == str[j])
{
s[i] = 'a'+j;
break;
}
}
}
getnext();
flag=kmp();
for(i=flag;i<len-flag;i++)
printf("%c",s[i]);
printf("\n");
}
return ;
}
ac。。。。。。。。
#include <stdio.h>
#include <string.h>
int next[];
char str[];
char s1[],s2[]; void getnext(char *t)
{
int i = ,j = -;
next[] = -;
while(t[i])
{
if(j == - || t[i] == t[j])
{
i++;
j++;
next[i] = j;
}
else
j = next[j];
}
} int kmp(char *s,char *t)
{
int i = ,j = ;
int slen =strlen(s),tlen = strlen(t);
getnext(t);
while(i<slen && j<tlen)
{
if(j == - || s[i] == t[j])
{
i++;
j++;
if(i == slen)
return j;
}
else
j = next[j];
}
return ;
} int main()
{
int t,i,flag,j;
scanf("%d",&t);
while(t--)
{
scanf("%s",str);
scanf("%s",s1);
int len = strlen(s1);
strcpy(s2,s1+(len+)/);
printf("%s",s1);
for(i = ; s1[i]; i++)
{
for( j = ; j<; j++)
{
if(s1[i] == str[j])
{
s1[i] = 'a'+j;
break;
}
}
} flag = kmp(s2,s1);
// puts(s2);puts(s1);
// printf("%d",flag);
for( i = flag; i<len-flag; i++)
{
printf("%c",s1[i]);
}
printf("\n");
} return ;
}
HDU-4300 Clairewd’s message的更多相关文章
- hdu 4300 Clairewd’s message KMP应用
Clairewd’s message 题意:先一个转换表S,表示第i个拉丁字母转换为s[i],即a -> s[1];(a为明文,s[i]为密文).之后给你一串长度为n<= 100000的前 ...
- hdu 4300 Clairewd’s message 字符串哈希
Clairewd’s message Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU - 4300 Clairewd’s message (拓展kmp)
HDU - 4300 题意:这个题目好难读懂,,先给你一个字母的转换表,然后给你一个字符串密文+明文,密文一定是全的,但明文不一定是全的,求最短的密文和解密后的明文: 题解:由于密文一定是全的,所以他 ...
- hdu 4300 Clairewd’s message(具体解释,扩展KMP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 Problem Description Clairewd is a member of FBI. ...
- hdu 4300 Clairewd’s message(扩展kmp)
Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she interce ...
- HDU 4300 Clairewd’s message(KMP+思维)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目大意:题目大意就是给以一段字符xxxxzzz前面x部分是密文z部分是明文,但是我们不知道是从 ...
- 【HDU 4300 Clairewd’s message】
Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important ...
- HDU 4300 Clairewd’s message(扩展KMP)
思路:extend[i]表示原串以第i開始与模式串的前缀的最长匹配.经过O(n)的枚举,我们能够得到,若extend[i]+i=len且i>=extend[i]时,表示t即为该点之前的串,c即为 ...
- HDU 4300 Clairewd’s message(扩展KMP)题解
题意:先给你一个密码本,再给你一串字符串,字符串前面是密文,后面是明文(明文可能不完成整),也就是说这个字符串由一个完整的密文和可能不完整的该密文的明文组成,要你找出最短的密文+明文. 思路:我们把字 ...
- HDU 4300 Clairewd’s message (next函数的应用)
题意:给你一个明文对密文的字母表,在给你一段截获信息,截获信息前半段是密文,后半段是明文,但不清楚它们的分界点在哪里,密文一定是完整的,明文可能是残缺的,求完整的信息串(即完整的密文+明文串). 题解 ...
随机推荐
- js生成动态日历
效果图: 看代码: <html> <head> <title>动态日历</title> <style type="text/css& ...
- 02_Jquery_03_类选择器
[简述] 类选择器就是通过类名(css类名)来查询元素! $(".myClass")就可以把所有包含了class="myClass"的元素查询出来 [index ...
- FFT —— 快速傅里叶变换
问题: 已知A[], B[], 求C[],使: 定义C是A,B的卷积,例如多项式乘法等. 朴素做法是按照定义枚举i和j,但这样时间复杂度是O(n2). 能不能使时间复杂度降下来呢? 点值表示法: 我们 ...
- (hdu)1022 Train Problem I 火车进站问题
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1022 Problem Description As the new term comes, ...
- centos 忘记 root 密码
采用单用户维护模式可以重设置新密码 系统重启,按任意键进入如下所示的菜单: 选择“kernel /.....”根据提示,按下 "e" 就能进入grup 编辑模式,此时出现的画面类似 ...
- github配置和git学习
参考:http://www.eoeandroid.com/thread-272837-1-1.html http://blog.csdn.net/hcbbt/article/details/11651 ...
- PHP 易出问题记录
PHP foreach引用缺陷 <?php $array = array(1, 2, 3); foreach ($array as &$v) {} foreach ($array as ...
- TDirectory.GetCreationTime、TDirectory.SetCreationTime获取和设置文件夹创建时间
使用函数: System.IOUtils.TDirectory.GetCreationTime//获取创建时间 System.IOUtils.TDirectory.SetCreationTime//设 ...
- C语言-06复杂数据类型-01数组
01-数组 #include <stdio.h> int main() { // 使用注意 // 都是正确写法 //int ages[5] = {10 , 11, 12, 67, 56}; ...
- php的ftp类
1.需求 了解php的ftp使用 2.例子 使用CI封装好的ftp类库 上传 $this->load->library('ftp'); $config['hostname'] = 'ftp ...