#423 Div2 C

题意

给出 n 个字符串以及他们在 S 串中出现的位置,求字典序最小的 S 串。保证给出的字符串不会冲突。

分析

模拟就好。用并查集思想优化,数组 nxt[i] 表示从 i 开始 接下来还未填字母的第一个位置。初始化 nxt[i] = i

code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5 + 5;
const int N = 2e6 + 10;
char str[N], s[N];
int nxt[N];
int fd(int x) {
return x == nxt[x] ? x : (nxt[x] = fd(nxt[x]));
}
int main() {
for(int i = 0; i < N; i++) {
nxt[i] = i;
}
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%s", s);
int len = strlen(s);
int c;
scanf("%d", &c);
for(int j = 0; j < c; j++) {
int x;
scanf("%d", &x);
x--;
int l = len;
int pos = 0;
int nxt_x = fd(x);
while(nxt_x - x < l) {
pos = nxt_x - x;
str[nxt_x] = s[pos];
nxt[nxt_x] = fd(nxt_x + 1);
nxt_x = nxt[nxt_x];
}
}
}
int ii = -1;
for(int i = N - 1; i >= 0; i--) {
if(str[i] >= 'a' && str[i] <= 'z') {
if(ii == -1) ii = i + 1;
} else {
str[i] = 'a';
}
}
if(ii == -1) ii = 0;
str[ii] = 0;
printf("%s\n", str);
return 0;
}

#423 Div2 C的更多相关文章

  1. #423 Div2 D

    #423 Div2 D 题意 构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出 ...

  2. bc#54 div2

    用小号做的div2 A:竟然看错了排序顺序...白白WA了两发 注意读入一整行(包括空格):getline(cin,st) [gets也是资瓷的 #include<iostream> us ...

  3. $('div a') 与$('div>a'),.div+.div2与.div~.div2

    $('div a'):div标签下所有层次a元素的jquery对象 $('div>a'):div标签下子元素层次a元素的jquery对象 <body> <div class=' ...

  4. SRM 657 DIV2

    -------一直想打SRM,但是感觉Topcoder用起来太麻烦了.题目还是英文,不过没什么事干还是来打一打好了.但是刚注册的号只能打DIV2,反正我这么弱也只适合DIV2了.. T1: 题目大意: ...

  5. CodeForces Round 192 Div2

    This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...

  6. Codeforce Round #211 Div2

    真的是b到不行啊! 尼玛C题一个这么简单的题目没出 aabbccddee 正确的是aabccdee 我的是   aabcdee 硬是TM的不够用,想半天还以为自己的是对的... A:题... B:题. ...

  7. Topcoder srm 632 div2

    脑洞太大,简单东西就是想复杂,活该一直DIV2; A:水,基本判断A[I]<=A[I-1],ANS++; B:不知道别人怎么做的,我的是100*N*N;没办法想的太多了,忘记是连续的数列 我们枚 ...

  8. TopCoder 603 div1 & div2

    div2 250pts MiddleCode 题意:s串长度为奇数时,将中间字符取掉并添加到t末尾:长度为偶数时,将中间两个较小的字符取掉并添加到末尾. 分析:直接做,学习了一下substr(s, p ...

  9. TopCoder 649 div1 & div2

    最近一场TC,做得是在是烂,不过最后challenge阶段用一个随机数据cha了一个明显错误的代码,最后免于暴跌rating,还涨了一点.TC题目质量还是很高的,非常锻炼思维,拓展做题的视野,老老实实 ...

随机推荐

  1. CodeIgniter学习笔记五:分页,文件上传,session,验证码

    一.分页 示例代码: //装载类文件 $this -> load -> library('pagination'); $controller = $this->router-> ...

  2. Caliburn Micro Binding KeyDown Event

    <TextBox x:Name="MyTextBox" TextAlignment="Left" FontSize="10" Widt ...

  3. 。net可以点出属性,编译没问题,运行时就报错了。一笔记。

    项目框架是这样的. 在 domain(你可以把它理解为你的bll) ,web 2个项目工程里面都引用了一个通过nuget管理程序包,比如 xxcommon.dll web 引用了 domain ,然后 ...

  4. mysql之select查询:练习

    单表查询: 数据查询命令:select 识别要查询的列 from识别要查询的表 select 运算符: + .-.*./. 加减乘除 等于= 不等于!= 或 <> 大于等于>= 小于 ...

  5. win10激活(转)

    批处理命令激活方法,此方法和激活码可激活 180天 先来说下使用激活码使用方法: 1.同时按下Win键+X,然后选择命令提示符(管理员) 2.在命令提示符中依次输入: slmgr.vbs /upk ( ...

  6. ASP.NET Core [3]:进入HttpContext的世界(笔记)

    原文链接:http://www.cnblogs.com/RainingNight/p/httpcontext-in-asp-net-core.html HttpContext是ASP.NET中的核心对 ...

  7. Mac 电脑鼠标和触摸板滚动方向不一致的问题【已解决】

    当我们使用鼠标连接到 MacBook 时,会发现无论怎么设置,鼠标和触摸板的滚动方向都是相反的,导致不能同时使用鼠标和触摸板 解决方法: 我安装了下面的程序,它只允许您反转鼠标的滚动行为: Scrol ...

  8. iPhone:iOS界面,本地生成随机验证码

    本文博客,模仿杰瑞教育的一篇博文,并在它的基础上,进行了些许更改.同时在重写的过程中,对自己忽略的地方,进行了重新认识,受益匪浅.文章来源:http://www.cnblogs.com/jerehed ...

  9. 创建虚拟机流程nova

    这篇博文借鉴于http://www.cnblogs.com/yjbjingcha/p/6977741.html,感谢博友提供. 本文试图具体地描写叙述openstack创建虚拟机的完整过程.从用户发起 ...

  10. CodeForces C. Maximal Intersection

    http://codeforces.com/contest/1029/problem/C You are given nn segments on a number line; each endpoi ...