【BZOJ2882】工艺【最小表示法】
2016-02-17 10:08
369 查看
原理证明看的http://blog.csdn.net/zy691357966/article/details/39854359
比较简单优美的算法,就找了个模板题做了下。
注意输出格式...否则PE
比较简单优美的算法,就找了个模板题做了下。
注意输出格式...否则PE
#include <cstdio> #include <algorithm> using namespace std; const int maxn = 600005; int n, s[maxn]; inline int iread() { int f = 1, x = 0; char ch = getchar(); for(; ch < '0' || ch > '9'; ch = getchar()) f = ch == '-' ? -1 : 1; for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0'; return f * x; } 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); } int main() { n = iread(); for(int i = 0; i < n; i++) s[n + i] = s[i] = iread(); int pos = MR(); for(int i = 0; i < n - 1; i++) printf("%d ", s[pos + i]); printf("%d\n", s[pos + n - 1]); return 0; }
相关文章推荐
- result的name属性和type属性
- PERL 5.8的反序列化
- 3.2-高阶函数
- [备忘]ubuntu安装node.js
- This Android SDK requires Android Developer Toolkit version 17.0.0 or above. Current version is 10.0.0.v201102162101-104271. Please update ADT to the latest version.
- Android开发者博客汇总
- API Guides(三)——Content Providers Basics To Processes and Thread
- MySQL 5.7.10 ZIP 免安装版本配置过程
- Java内存分配全面浅析
- ExtJS笔记--Ext.data详解
- 获取地理经纬度(地图)
- 程序居于桌面的中心位置
- Android Studio快捷键
- jquery.validate+jquery.form提交的三种方式
- springMVC框架,后台中session添加用户信息和获取用户信息的问题
- 如何利用 Google 成为一个更好的程序员
- Android开发中的一些小的知识点总结
- Android开发中一些被冷落但却很有用的类和方法
- Tcl -- set
- mysql 利用触发器(Trigger)让代码更简单