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…
大意: 给定k个字符串, 长度均为n, 求是否存在一个串S, 使得k个字符串都可以由S恰好交换两个字符得到. 暴力枚举交换的两个字符的位置, 计算出交换后与其他串不同字符的个数, 若为1或>2显然不成立, 若为0必须要求存在两个相同的字符. #include <iostream> #include <iostream> #include <algorithm> #include <cstdio> #include <math.h> #inc…
http://codeforces.com/contest/903/problem/E 题意是,对于每个字符串都要交换两个位置的字符(id),使得结果所有字符串是一样的,输出那个字符串. 正解是,先比较两个字符串,如果他们不同的位置 > 4那就是不行的了 有4个不同的还是可行的,比如: abab baba 因为每个字符串都有一次交换机会,所以可以变成 baab即可 如果小于4,那么暴力枚举每一个不同的位置,和任意一个位置交换,暴力check,复杂度5000^2 我的渣渣做法. 因为n*k<50…
Codeforces 题目传送门 & 洛谷题目传送门 简单题,难度 *2500 的 D2F,就当调节一下一模炸裂了的自闭的心情,稍微写写吧. 首先我看到这题的第一反应是分类讨论+数据结构,即枚举其中一个被交换的位置然后用树状数组或类似的数据结构维护另一个决策的贡献,细节似乎挺多的,大概硬刚个大分类讨论上去也可以?不过显然此题有更简便的方法所以这种方法就没写了. 我们来观察一下这个"交换"有什么性质,这个绝对值有点烦,我们不妨将所有 \(i\) 分为两类:\(a_i<b_i…
原博主:https://blog.csdn.net/amovement/article/details/80358962 B. Bus of Characters time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output In the Bus of Characters there are nn rows of seat, each h…
链接: https://codeforces.com/contest/1234/problem/D 题意: You are given a string s consisting of lowercase Latin letters and q queries for this string. Recall that the substring s[l;r] of the string s is the string slsl+1-sr. For example, the substrings…
题意: 有n排座位,每排有两个座位,每排座位的宽度都不一样. 有2 * n个人要上车,如果是内向的人,那么它会选择一排两个都是空位并且宽度最小的一排去坐: 如果是外向的人,会选择一排座位已经有人坐的,并且宽度最大的一排. 输入数据保证外向的人一定可以找到合适的位置. 问每一个人坐的排数是多少. 思路: 用map存每个长度代表的座位,两个set存没有被占in的和已经被占ex的. 如果是内向的人,每次从没有被占的选择最小的,插入已经被占的,然后从没有被占中擦除: 如果是外向的人,直接从被占的选择一个…
解题思路: 排序之后模拟一个栈(也可以用真的栈),时间复杂度o(n). 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; struct node{ int val;int idx; }w[]; bool cmp(node x, node y){ return x.val < y.val; } ]; stack <node> s; int main(){ int n; scanf(&q…
CF上给的标签是数据结构.但给的题解里的方法是很巧的暴力,用vector<set>维护每个字母出现的下标,每次修改加下标,擦下标.每次询问对每个字母分别lower_bound查找区间内是否存在这样位置,实在太妙了! 先看题解的方法. #include <bits/stdc++.h> #define debug(x) cout << #x << ": " << x << endl using namespace st…
Error Correct System Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 527B Description Ford Prefect got a job as a web developer for a small company that makes towels. His current work ta…