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

最小表示法 P1368

时间:2019-08-24 15:01:36      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:scan   ons   ret   lse   space   for   color   nbsp   bit   

首先我们要找最小的,其实可以通过逆向思维,把所有大的都排除就可以得到小的,详细见代码

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=3e5+5;
 4 int a[2*N],n;
 5 int main(){
 6     scanf("%d",&n);
 7     for(int i=1;i<=n;i++)
 8      scanf("%d",&a[i]),a[i+n]=a[i];
 9     int i=1,j=2,k;
10     while(i<=n&&j<=n){
11         for(k=0;a[i+k]==a[j+k]&&k<=n;k++);
12         if(a[i+k]>a[j+k])i+=k+1;
13         else j+=k+1;
14         if(i==j)i++;
15     }
16     int ans=min(i,j);
17     for(int i=0;i<n;i++)
18      printf("%d ",a[i+ans]); 
19     puts("");
20     return 0;
21 } 
Code

 

最小表示法 P1368

标签:scan   ons   ret   lse   space   for   color   nbsp   bit   

原文地址:https://www.cnblogs.com/coder-cjh/p/11404464.html

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