poj Organize Your Train part II
http://poj.org/problem?id=3007
#include<cstdio>
#include<algorithm>
#include<cstring>
#define maxn 600000
using namespace std; struct node
{
char s[];
node *next;
};
int ans;
node *hash[maxn]; void insert(char s[])
{
int k=strlen(s);
int sum=;
for(int i=; i<k; i++)
{
sum+=s[i]*i;
}
//printf("%d %s\n",sum,s);
if(!hash[sum])
{
node *p=new node();
strcpy(p->s,s);
hash[sum]=p;
ans++;
//printf("*%d %s\n",sum,s);
}
else
{
node *p=hash[sum];
if(!strcmp(p->s,s)) return ;
else
{
while(p->next!=NULL)
{
if(!strcmp(p->next->s,s))
return ;
p=p->next;
}
node *q=new node();
strcpy(q->s,s);
p->next=q;
ans++;
//printf("*%d %s\n",sum,s);
}
}
return ;
} void change(char s1[],char s2[],char s3[],char s4[])
{
int k1=strlen(s1);
int k2=strlen(s2);
int t1=,t2=;
for(int i=k1-; i>=; i--)
{
s3[t1++]=s1[i];
}
s3[t1]='\0';
for(int j=k2-; j>=; j--)
{
s4[t2++]=s2[j];
}
s4[t2]='\0';
} void merge(char str1[],char str2[],char str3[])
{
int m=;
int k1=strlen(str1);
int k2=strlen(str2);
for(int i=; i<k1; i++)
{
str3[m++]=str1[i];
}
for(int j=; j<k2; j++)
{
str3[m++]=str2[j];
}
str3[m]='\0';
} int main()
{
int t;
char str[],s1[],s2[],s3[],s4[],s[];
scanf("%d",&t);
while(t--){
ans=;
scanf("%s",str);
if(strlen(str)==){
printf("1\n");
continue;
}
memset(hash,,sizeof(hash));
int k=strlen(str);
for(int i=; i<=k-; i++)
{
//printf("%d\n",i);
int t1=,t2=,j;
for(j=; j<i; j++)
{
s1[t1++]=str[j];
}
s1[t1]='\0';
for(; j<k; j++)
{
s2[t2++]=str[j];
}
s2[t2]='\0';
change(s1,s2,s3,s4);
merge(s1,s4,s);
insert(s);
merge(s1,s2,s);
insert(s);
merge(s2,s3,s);
insert(s);
merge(s4,s1,s);
insert(s);
merge(s2,s1,s);
insert(s);
merge(s3,s2,s);
insert(s);
merge(s4,s3,s);
insert(s);
merge(s3,s4,s);
insert(s);
}
printf("%d\n",ans);
}
return ;
}
poj Organize Your Train part II的更多相关文章
- POJ 3007 Organize Your Train part II
题意: 如上图所示,将一个字符串进行分割,反转等操作后不同字符串的个数: 例如字符串abba:可以按三种比例分割:1:3:2:2:3:1 部分反转可以得到如下所有的字符串: 去掉重复可以得到六个不同的 ...
- POJ 3007 Organize Your Train part II (字典树 静态)
Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6478 Acce ...
- POJ 3007:Organize Your Train part II
Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7561 Acce ...
- Organize Your Train part II 字典树(此题专卡STL)
Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8787 Acce ...
- poj 3007 Organize Your Train part II(二叉排序树)
题目:http://poj.org/problem?id=3007 题意:按照图示的改变字符串,问有多少种..字符串.. 思路:分几种排序的方法,,刚开始用map 超时(map效率不高啊..),后来搜 ...
- POJ 3007 Organize Your Train part II(哈希链地址法)
http://poj.org/problem?id=3007 题意 :给你一个字符串,让你无论从什么地方分割,把这个字符串分成两部分s1和s2,然后再求出s3和s4,让你进行组合,看能出来多少种不同的 ...
- poj 3007 Organize Your Train part II(静态字典树哈希)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6700 Accepted: 1922 Description RJ Freigh ...
- Organize Your Train part II(hash)
http://poj.org/problem?id=3007 第一次用STL做的,TLE了,自己构造字符串哈希函数才可以.. TLE代码: #include <cstdio> #inclu ...
- Organize Your Train part II-POJ3007模拟
Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Description RJ Freight, a Japane ...
随机推荐
- motan源码分析九:开关
在前面的文章中,我们已经发现了开关的踪影,例如cluster,motan支持多个cluster,当前的cluster因为开关关闭的情况下,就会使用下一个cluster. 1.开关相关的类和接口主要都在 ...
- 一个小程序,时间util
比较时间,如果此时间是今天的显示时间点,今天以前显日期 public String getTime(Date time){ SimpleDateFormat dateFor ...
- 关于这两天研究Java打印pdf方法的记录
这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例 ...
- [WebStrom] Change default cmd to Cygwin
GO to setting, search Terminal: Change shell path : C:\cygwin\bin\bash.exe --login -i (to the loc ...
- Android中为图标加上数字--用于未读短信数提醒,待更新应用数提醒等
本文属于原创,转载请著名出处:http://flysnow.iteye.com/blog/906770 写道 在我们开发一些如短消息.应用商店等应用时,会考虑在短消息的图标上加上未读短信的数量,在应用 ...
- 黑白图像(DFS)
输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数.如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块.如图6-11所示的图形有3个八连块. 图6-11 拥有3 ...
- 网络环境场景以及模拟工具netem
网络环境场景包括: 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况. 掉包(Drop),随机丢弃一些数据. 节流(Throttle),把一小段时间内的数据拦截下来后再在之后的 ...
- C#读取Word文档内容代码
首先要添加引用com组件:然后引用: using Word = Microsoft.Office.Interop.Word; 获取内容: /// /// 读取 word文档 返回内容 /// //// ...
- OSX10.11 CocoaPods 升级总结
本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...
- shell脚本中echo显示内容带颜色
转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...