首页 > 代码库 > BZOJ2882 工艺
BZOJ2882 工艺
hzwer:"输出最小表示"
感觉就是kmp的思想呢?
1 /************************************************************** 2 Problem: 2882 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:492 ms 7 Memory:1976 kb 8 ****************************************************************/ 9 10 #include <cstdio>11 #include <algorithm>12 13 using namespace std;14 const int N = 300005;15 16 int n;17 int a[N];18 19 int work() {20 int i = 0, j = 1, k = 0, tmp;21 while (i < n && j < n && k < n) {22 tmp = a[(i + k) % n] - a[(j + k) % n];23 if (!tmp) ++k;24 else {25 if (tmp > 0) i += k + 1;26 else j += k + 1;27 if (i == j) ++i;28 k = 0;29 }30 }31 return min(i, j);32 }33 34 int main() {35 int i, st;36 scanf("%d", &n);37 for (i = 0; i < n; ++i)38 scanf("%d", a + i);39 st = work();40 printf("%d", a[st % n]);41 for (i = 1; i < n; ++i)42 printf(" %d", a[(st + i) % n]);43 return 0;44 }
BZOJ2882 工艺
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。