XEN 3166

这题原题是spj,校oj上只用判断yes no,不过也差不多

题意分析之后就是求两个东西:

  • 字典序最小的长度为m的子序列
  • 同时这个字典序严格大于某个字符串

用序列自动机 先尽量相同,然后再考虑严格大于

#include <bits/stdc++.h>

using namespace std;
const int maxn = 200010;
int last[27], nxt[maxn][27], len; void init(const char s[]) {
len = (int) strlen(s);
for (int i = 0; i < 26; ++i) last[i] = len + 1;
for (int i = len; i >= 1; i--) {
for (int j = 0; j < 26; ++j) {
nxt[i][j] = last[j];
}
last[s[i - 1] - 'A'] = i;
}
for (int j = 0; j < 26; ++j) {
nxt[0][j] = last[j];
}
} char s[2][maxn];
int n, m; int solve(char pre[], char ans[], const char name[]) {
if (len < m) return false;
if (pre[1] == name[0]) {
if (m <= 1) return 0;
int a = 0, b = 0, c = 0;
for (int i = 1, j = 1; i < m && j <= len; ++i) {
ans[i] = pre[i];
for (int k = pre[i + 1] - 'A' + 1; k < 26; ++k) {
if (i + len - nxt[j][k] + 1 >= m) {
a = i;
b = j;
c = k;
break;
}
}
j = nxt[j][pre[i + 1] - 'A'];
}
if (!a) return 0;
ans[a + 1] = char(c + 'A');
//
for (int i = a + 1, j = nxt[b][c]; i < m; ++i) {
for (int k = 0; k < 26; ++k) {
if (i + len - nxt[j][k] + 1 >= m) {
ans[i + 1] = char(k + 'A');
j = nxt[j][k];
break;
}
}
}
} else {
ans[1] = name[0];
for (int i = 1, j = nxt[0][name[0] - 'A']; i < m; ++i) {
for (int k = 0; k < 26; ++k) {
if (i + len - nxt[j][k] + 1 >= m) {
ans[i + 1] = char(k + 'A');
j = nxt[j][k];
break;
}
}
}
}
return 1;
} string p[1010]; int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> p[i];
}
sort(p + 1, p + 1 + n);
bool flag = 1;
for (int i = 1; i <= n; ++i) {
init(p[i].c_str());
if (!solve(s[i % 2], s[1 - i % 2], p[i].c_str())) {
flag = 0;
break;
}
}
if (flag) cout << "YES" << '\n';
else cout << "NO" << '\n'; return 0;
}

XEN 3166的更多相关文章

  1. 虚拟机体验之 Xen 篇 —— 令人脑洞大开的奇异架构

    这一篇我要体验的虚拟机系统是 Xen.在虚拟机领域,Xen 具有非常高的知名度,其名字经常在各类文章中出现.同时 Xen 也具有非常高的难度,别说玩转,就算仅仅只是理解它,都不是那么容易.之所以如此, ...

  2. 【转】Xen与XenServer的区别

    说到XenServer,总是离不开Xen,所以我要说他们的区别,得首先从Xen开始说起! Xen体系架构 Xen hypervisor体系架构 Xen 的 VMM ( Xen Hypervisor ) ...

  3. Xen之初体验:XenMotion、 StorageMotion、Site Recovery、Power Management 各种新、高级功能免费

    Xenserver 的新版本6.2现在已经全面开源,省掉了原有的序列号,也能免费体验曾经标题中的付费高级功能. 安装镜像:http://downloadns.citrix.com.edgesuite. ...

  4. Citrix Xen Desktop安装配置

    Citrix虚拟化的东西其实和我现在做的东西完全没有关系的.反正接到通知要搭一个Citrix Xen Desktop那就做. 先放几个教程: :跟着图片通过XenDesktop7发布Win8桌面 这个 ...

  5. xen下离线读取虚拟机磁盘镜像的补丁

    之前在xen-3.4.2和xen-4.1.2下做过几个基于qemu模拟器的补丁,就是想着不用通过xm create(xen3下面)或xl create(xen4下面)启动虚拟机,而能直接去解析磁盘镜像 ...

  6. XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法

    使用Serial Over Lan(SOL)来双机调试 XEN,在 XEN 启动时,引导信息输出到以下这一句时,就不再发送调试信息了: ...(XEN) Intel machine check rep ...

  7. 利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

    如有转载,请注明出处与本文连接,谢谢! 修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建 ...

  8. Ubuntu系统下Xen虚拟机的基本安装方法(代码创建)

    Ubuntu上Xen安装虚拟机方法一dd一个空的磁盘sudo dd if=/dev/zero of=/home/vm1.img bs=1G count=8 下载Xen VM通用配置文件 sudo wg ...

  9. Xen启动过程分析(还是分享过来吧,找了好长时间)

    XEN启动过程     ‍Xen Hypervisor运行在Ring0,在启动过程中,Xen首先被引导:系统由Grub启动,遵循Multiboot引导规范:然后Linux内核做为module也被引导入 ...

随机推荐

  1. 虚拟机vmware vmnet8 未识别(转)

    原文链接:https://blog.csdn.net/windows_q/article/details/50678646

  2. jQuery课上笔记19.5.17

    jQuery 选择器 $("*"):所有元素 $("#idname"):id="idname"的元素 $(".classname& ...

  3. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Java Spring的特点和优点

    Spring 是另一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力. Spring 是分层的 Java SE/EE full-stack 轻量级开源框架, ...

  4. PAT Advanced 1076 Forwards on Weibo (30) [图的遍历,BFS,DFS]

    题目 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and ...

  5. 关于Java中内省的总结

    内省基于JavaBean规范对反射进行了封装,提供了更加便捷的通过getter/setter方法来访问字段的方式 Java内省的知识结构图 JavaBean的规范 JavaBean在现在可以认为就是普 ...

  6. JavaSE--java是值传递还是引用传递

    引用是已定义的变量的别名. 按引用传递就是一个变量使用两个名称. 两个变量在内存中的地址都是一样的. 按值传递, 传递的是值的拷贝. C++中可以通过传引用来改变传入的参数的值.在C++中可以通过以下 ...

  7. Java算法练习——无重复字符的最长子串

    题目链接 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &qu ...

  8. stegsolve使用方法

    Stegsolve使用方法(是因为ctf题总是遇到并且目前百度没有十分详细的探究说明) 这个没什么好说的,打开文件 ,保存,退出 在分析里面从上到下的依次意思是 File Format:文件格式 Da ...

  9. 设计模式讲解5:FlyWeight模式源码

    声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635 FlyWeight模式即享元模式.很多文本编辑器中都使用了FlyWeight模式.FlyWeight单词含 ...

  10. JOIN US | 京东云诚聘技术精英

    清新的办公区域感受自然的气息,温馨的团队为你我放飞青春的理想 上有天文下有地理的阅读区域 各类图书提供借阅 绿植环绕生机勃勃的会客区域洋溢青春 [高级Java工程师] 职位描述: 参与云计算相关平台/ ...