国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > UVA 12338 哈希+二分最长前缀

UVA 12338 哈希+二分最长前缀

来源:程序员人生   发布时间:2014-09-29 17:49:17 阅读次数:2588次

每个字符串都哈希之后,二个之间二分出最长前缀!

需要注意的是不能用数组存,会暴,用vector就行了。

 

#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include#include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) #define lson i<<1,l,mid #define rson i<<1|1,mid+1,r #define llson j<<1,l,mid #define rrson j<<1|1,mid+1,r #define INF 0x7fffffff #define maxn 100105 typedef long long ll; typedef unsigned long long ull; using namespace std; ull Hash,seed=131; vectorv[maxn]; char s[maxn]; int main() { //freopen("1.txt","r",stdin); int t,ii=1; scanf("%d",&t); while(t--) { int n,m,i,j,a,b; scanf("%d",&n); for(i=0;i>1; if(v[a][mid]==v[b][mid]) l=mid+1,ans=mid; else r=mid-1; } if(v[a][ans]!=v[b][ans]) printf("%d ",ans); else printf("%d ",ans+1); } } return 0; }


 

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生