UVALive 6439 Pasti Pas!
来源:互联网 发布:怎样复制淘宝链接 编辑:程序博客网 时间:2024/05/21 09:12
点击打开题目链接
字符串哈希。
应该算第一次接触这种方法吧。
在长串的头和尾搜索,把当前位置构成的字串哈希成一个值。判断头尾这个值是否相等。如果相等,那么最后的回文字串的长度一定要+2.最后判断奇数情况时,加上最中间的一个。
#include <stdio.h>#include <string.h>#define N 50005#define SEED 31char s[N];int has[N];int main(){ int t; scanf("%d",&t); int i=1; while(i<=t) { scanf("%s",s); has[0]=1; for(int i=1;i<=50000;i++) has[i]=has[i-1]*SEED; int l=strlen(s); int head=0,tail=0,pos=0,ans=0; for(int i=0;i<l/2;i++) { head*=SEED; head+=(s[i]-'A'+1); tail+=(s[l-i-1]-'A'+1)*has[i-pos]; if(head==tail) { ans+=2; pos=i+1; head=0; tail=0; } } if(head!=0) ans++; if(l%2==1&&head==0) ans++; printf("Case #%d: %d\n",i++,ans); } return 0;}
0 0
- UValive 6439 - Pasti Pas!
- UVALive 6439--Pasti Pas!
- UVALive 6439 Pasti Pas!
- UvaLive 6439 Pasti Pas! 字符串哈希
- Uvalive6439(Pasti Pas!)
- pas
- UVALive 6439
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- eclipse转用android studio——常用快捷键
- javascript之函数的参数
- 第二十四天 ImageView,AdapterView
- 汇编语言学习
- Servlet单例多线程详解
- UVALive 6439 Pasti Pas!
- Android控件之checkbox
- ubuntu9.04 gedit 乱码与修改系统编码
- Antenna Placement(POJ--3020
- hdu2255
- ubuntu 建立samba共享目录
- Html5的两个本地存储对象sessionStorage和localStorage
- 使用Gson解析管理类
- SDUTOJ 2080 最长公共子序列问题(LCS)