当前位置: 首页 > news >正文

asp漂亮的办公家具公司网站源码蒙古文门户网站建设督导

asp漂亮的办公家具公司网站源码,蒙古文门户网站建设督导,龙岗做网站的,4.1进行网站建设与推广【模板】最小表示法 题目描述 小敏和小燕是一对好朋友。 他们正在玩一种神奇的游戏,叫 Minecraft。 他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边。…

【模板】最小表示法

题目描述

小敏和小燕是一对好朋友。

他们正在玩一种神奇的游戏,叫 Minecraft。

他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边。

他们想,在仅这一个操作下,最漂亮的工艺品能多漂亮。

两个工艺品美观的比较方法是,从头开始比较,如果第 iii 个位置上方块不一样那么谁的瑕疵度小,那么谁就更漂亮,如果一样那么继续比较第 i+1i+1i+1 个方块。如果全都一样,那么这两个工艺品就一样漂亮。

输入格式

第一行一个整数 nnn,代表方块的数目。

第二行 nnn 个整数,每个整数按从左到右的顺序输出方块瑕疵度的值。

输出格式

一行 nnn 个整数,代表最美观工艺品从左到右瑕疵度的值。

样例 #1

样例输入 #1

10
10 9 8 7 6 5 4 3 2 1

样例输出 #1

1 10 9 8 7 6 5 4 3 2

提示

  • 对于 20%20\%20% 的数据,n≤1000n\le 1000n1000
  • 对于 40%40\%40% 的数据,n≤104n\le 10^4n104
  • 对于 100%100\%100% 的数据,n≤3×105n\le 3\times 10^5n3×105

题意:

虽然题目给定的是个数组,但我们可以把问题抽象成:给定一个长度为 n 的字符串 s,找出字典序最小的循环移位(长度也为 n)。以下的分析我们均用 “串” 来代替数组。

思路:

SAM 高度压缩了原串各种长度的所有子串。我们发现:字符串 s + s 包含 s 的所有循环移位作为子串。所以如果要找字典序的最小循环移位,不妨将原串复制一份,形成一个长度为 2n 的串,选择所有长度为 n 的子串集合中字典序最小的那个

我们对长度为 2n 的新串构建后缀自动机,从DAG的根节点开始,每次贪心的走字典序最小的节点,走 n 步,边走边输出即可。

时间复杂度:O(n)O(n)O(n)

代码:

#include<bits/stdc++.h>using namespace std;const int N = 6e5 + 10, M = N << 1;
int n, a[N], len[M], fa[M], np = 1, tot = 1;
map<int, int> ch[M];
vector<int> g[M];void extend(int c)
{int p = np; np = ++tot;len[np] = len[p] + 1;while (p && !ch[p][c]) {ch[p][c] = np;p = fa[p];}if (!p) {fa[np] = 1;}else {int q = ch[p][c];if (len[q] == len[p] + 1) {fa[np] = q;}else {int nq = ++tot;len[nq] = len[p] + 1;fa[nq] = fa[q], fa[q] = fa[np] = nq;while (p && ch[p][c] == q) {ch[p][c] = nq;p = fa[p];}ch[nq] = ch[q];}}
}signed main()
{scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", &a[i]);a[i + n] = a[i];}n <<= 1;for (int i = 0; i < n; ++i) {extend(a[i]);}int p = 1;for (int i = 0; i < n / 2; ++i) {auto pp = ch[p].begin();	//由于map自动按第一关键字排序,因此每次贪心地选择首元素走就行int ele = (*pp).first;int nd = (*pp).second;printf("%d ", ele);p = nd;}puts("");return 0;
}
http://www.yayakq.cn/news/262035/

相关文章:

  • 帮人建网站价格赚钱吗php网站开发 在本地修改 服务器源文件同步
  • 公司网站维护教程天津做网站需要多少钱
  • 苏州外贸公司网站建设流程图好网站建设公司地址
  • wordpress站点切换为中文十大免费自媒体素材网站
  • 自己免费建设网站西安网吧
  • 注册网站费属于什么费用seo综合查询爱站
  • asp网站开发环境搭建自己做soho需要做网站吗
  • 上海模板建站源码建立网站的价格
  • 通用模板做的网站不收录工程公司税率是多少
  • 国外建站vps电商网站开发难点
  • 界首网站优化公司ic手机网站开发平台
  • 网站开发工具安全性能贵州省和城乡建设厅官方网站
  • 快照网站产品查询展示型网站
  • 哈尔滨网站建设17网一起做网店普宁站
  • 做网站每年交服务费网站建设哪家好首选万维科技
  • 网站301跳转有坏处吗申请域名费用
  • 全自动三次元网站建设安徽中擎建设公司网站
  • 深圳h5网站制作自己做网站有名
  • 定制家具网站建设桂林优化公司
  • 具有品牌的广州做网站网站经营方案 备案
  • 婚恋网站模板浙江义乌外发加工网
  • 手机网站营销方案爱站工具包官网下载
  • 网站付的保证金怎么做会计凭证网站建设公司擅自关闭客户网络
  • 网上做预算的网站网站建设的成功之处有哪些
  • 网站建设推广公司需要哪些岗位wordpress重新安装删除哪个文件
  • 深圳网站制作公司深圳app开发博客网站
  • 好的文化网站模板下载广告设计与制作工作内容
  • 网站被挂黑链排名降权做网站后台都要自己写吗
  • 做一回最好的网站电子商务公司门头照片
  • 工程信息平台有哪些上海网络优化服务