码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-11-02 23:51:48      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:false   for   ring   还需   names   hdu   return   字符串   while   

还需要再消化一下这个算法。。 今天没有时间了,, 六级过了 就有大把时间 快活啊!
#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 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/

标签:false   for   ring   还需   names   hdu   return   字符串   while   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!