hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/
Posted 不搞事情和咸鱼有什么区别
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/相关的知识,希望对你有一定的参考价值。
还需要再消化一下这个算法。。 今天没有时间了,, 六级过了 就有大把时间 快活啊!
#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 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/的主要内容,如果未能解决你的问题,请参考以下文章