首页 > 其他 > 详细

hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/

时间:2016-11-02 23:49:32      阅读:339      评论:0      收藏:0      [点我收藏+]
还需要再消化一下这个算法。。 今天没有时间了,, 六级过了 就有大把时间 快活啊!
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<set>
using namespace std; int getmin(string s) { int n=s.size(); int i=0,j=1,k=0,t; while(i<n && j<n && k<n) { t=s[(i+k)%n]-s[(j+k)%n]; if (!t) k++; else { if (t>0) i+=k+1; else j+=k+1; if (i==j) j++; k=0; } } return i<j?i:j; } int main() { cin.sync_with_stdio(false); int t; while(cin>>t) { set<string> fuck; for(int i=1;i<=t;i++) { string ss; cin>>ss; int temp=getmin(ss); int len=ss.size(); string zz; int z=temp,ret; for(ret=0;ret<ss.size();ret++) { zz+=ss[z%len]; z++; } fuck.insert(zz); } cout<<fuck.size()<<endl; } return 0; }

hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/

原文:http://www.cnblogs.com/z1141000271/p/6024797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!