Codeforces 903E Swapping Characters
题目大意
考虑一个未知的长为 $n$($2\le n\le 5000$)由小写英文字母构成的字符串 $s$ 。给出 $k$($1\le k\le 2500$,$nk\le 5000$)个字符串 $s_1, s_2, \dots, s_k$,$s_i$ 由 $s$ 通过交换 $s[x_i]$ 和 $s[y_i]$($x_i \ne y_i$ )得到。求 $s$,若有多解输出任意一个接,无解输出 -1
。
解法
假设输入的 $k$ 个串不全相等。(否则平凡)
取 $s_1$、$s_2$,$s_1\ne s_2$ 。(此 $s_1, s_2$ 并非指输入的 $s_1, s_2$ 。)
设 $i$ 是两者不相同的第一个位置,则二者中至少有一个的「交换位置」包含 $i$ 。
据此,可以先假设 $s_1$ 的一个交换位置是 $i$ ,枚举 $s_1$ 的另一个交换位置,进行检验。
若不可能,再假设 $s_2$ 的一个交换位置是 $i$ ,枚举 $s_2$ 的另一个交换位置。
这种做法的时间复杂度为 $O(kn + n^{2}k)$,可接受。
TODO
能否进一步缩小可能的交换位置的范围(candidate swapping index pair),下面尝试讨论这一问题。
不失一般性,设 $s_1$ 的交换位置为 $(i, j)$,$s_2$ 的交换位置为 $(i', j')$ 。
分类讨论:
- $i$ 不是 $s_1$ 的第一个交换位置,即 $j < i$ 。
1.1 $s_1[i] = s_1[j]$
1.2 $s_1[i] \ne s_1[j]$ - $i$ 是 $s_1$ 的第一个交换位置,即 $j > i$ 。
转载于:https://www.cnblogs.com/Patt/p/8046836.html
Codeforces 903E Swapping Characters相关推荐
- Codeforces903E Swapping Characters
题意:n个字符串,每个字符串长度为m(n*m<=5000),每个字符串必须移动两个字符串变成相同的字符串,问最后相同字符串是什么 题解:一开始hash,极限数据会T,正解是把第一个字符串看做静止 ...
- Distinct Characters Queries CodeForces - 1234D(线段树求区间字母种类数)
You are given a string ss consisting of lowercase Latin letters and qq queries for this string. Reca ...
- Codeforces 982 B. Bus of Characters(模拟一个栈)
解题思路: 排序之后模拟一个栈(也可以用真的栈),时间复杂度o(n). 代码: #include <bits/stdc++.h> using namespace std; typedef ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- Codeforces Round #300 A. Cutting Banner 水题
A. Cutting Banner Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pro ...
- 【Codeforces】Round #375 (Div. 2)
Position:http://codeforces.com/contest/723 我的情况 啊哈哈,这次raiting肯定要涨,接受过上次的教训,先用小号送肉,大号都是一发切,重回蓝咯 结果... ...
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) B. Little Artem and Grasshopper 模拟题...
B. Little Artem and Grasshopper 题目连接: http://www.codeforces.com/contest/669/problem/B Description Li ...
- Codeforces Beta Round #92 (Div. 1 Only) A. Prime Permutation 暴力
A. Prime Permutation 题目连接: http://www.codeforces.com/contest/123/problem/A Description You are given ...
- Codeforces Round #324 (Div. 2) E. Anton and Ira 贪心
E. Anton and Ira Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
最新文章
- bzoj 1691: [Usaco2007 Dec]挑剔的美食家
- 因为看见,所以发现:QBotVariant谢绝落幕
- Hibernate中的fetch
- 【LeetCode】剑指 Offer 17. 打印从1到最大的n位数
- mysql双击同步_求助,WINDOWS下MYSQL双机同步的问题
- FFmpeg源代码简单分析:日志输出系统(av_log()等)
- 12c emcc Algorithm negotiation fail
- 传统高斯模糊与优化算法(附完整C++代码)
- 如何让应用出现在LINUX的右键/打开方式/更多应用
- 【交通标志识别】基于matlab GUI模板匹配交通标志识别【含Matlab源码 1059期】
- 教师计算机技术培训内容,2019教师计算机培训计划
- PCB画板与硬件调试+AD快捷键小技巧
- 拓扑排序算法 C语言实现
- centos安装jetbrains projector(解决不能复制问题)
- 程序员微信名昵称_2020最火的微信名有哪些 好听的微信名字推荐
- sqlserver连接池及查看连接数相关
- 常用 XML 解析技术
- 力盟科技冲刺上市:主要通过力盟传媒展业,木瓜移动等亦在努力
- MySQL - 查询数据库里所有表名和字段名
- java 搭建个人博客_5分钟 教大家搭建免费个人博客
热门文章
- /var/lib/docker/overlay2/xxxxx no such file or directory docker文件删除引发的问题
- 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
- 2022-2028年中国手机支付市场投资分析及前景预测报告
- 芯片IP,SOC,FPGA智能卡
- deeplearning模型库
- Ascend Pytorch算子功能验证
- 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
- LCD: 2D-3D匹配算法
- 摄像头ISP系统原理(中)