2882: 工艺

来源:互联网 发布:java防重复提交框架 编辑:程序博客网 时间:2024/04/28 05:50

题目链接

题目大意:输出最小表示法

题解:神奇算法

我的收获:……

#include <cstdio>#include <algorithm>using namespace std;const int maxn = 600005;int n, s[maxn];int Mr(){    int i=0,j=1;    for(int k;i<n&&j<n;){        for(k=0;k<n&&s[i+k]==s[j+k];k++);        if(k==n) return i;        if(s[i+k]>s[j+k]) i=i+k+1;        else j=j+k+1;        if(i==j) j++;    }    return min(i,j);}void work(){    int pos=Mr();    for(int i=0;i<n-1;i++) printf("%d ",s[pos+i]);printf("%d\n",s[pos+n-1]);}void init(){    scanf("%d",&n);    for(int i=0;i<n;i++) scanf("%d",&s[i]),s[n+i]=s[i];} int main(){    init();    work();    return 0;}
原创粉丝点击