首页 > 其他分享 >Strings of Impurity

Strings of Impurity

时间:2023-11-01 11:11:58浏览次数:34  
标签:set Impurity int s2 s1 Strings size

link

不懂为什么都写平衡树,明明 set 就好了啊,思路跟平衡树差不多,实现起来较为简单。

int n, m, k;
int s[N];
string s1, s2;
int cnt[N];
vector<int> t;
set<int> p[N];
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
	cin >> s1 >> s2;
	n = s1.size(), m = s2.size();
	s1 = " " + s1, s2 = " " + s2;
	for(int i = 1; i <= n; i ++) {
		s[i] = s1[i] - 'a';
		cnt[s[i]] ++;
		p[s[i]].insert(i);
	}
	for(int i = 1; i <= m; i ++) {
		int x = s2[i] - 'a';
		if(cnt[x]) t.push_back(x);
	}
	if(t.size() != m) {
		cout << -1 << '\n';
		return 0;
	}
	int cur = 0, now = -1;
	k = 1;
	while(cur < t.size()) {
		auto it = p[t[cur]].lower_bound(now + 1);
		if(it == p[t[cur]].end()) {
			now = -1;
			k ++;
			continue;
		}
		cur ++;
		now = *it;
	}
	cout << (LL)(k - 1) * n + now << '\n';
    return 0;

标签:set,Impurity,int,s2,s1,Strings,size
From: https://www.cnblogs.com/Svemit/p/17802579.html

相关文章

  • linux 中 strings命令
     001、linux中strings命令主要是在对象文件或者二进制文件中查找可打印的字符串。 002、举例(base)[b20223040323@admin1~]$strings/bin/ls|head/lib64/ld-linux-x86-64.so.2libselinux.so.1__gmon_start___initfgetfileconfreeconlgetfilecon_finilibc......
  • CF1889A. Qingshan Loves Strings 2
    不妨考虑什么时候会无解!显然当原序列\(0,1\)数量不同,或者序列总长为奇数时会无解!否则我们设\(l=1,r=n\)!开始回文配对!如果配上了就直接删掉!并把左右端点向内移动!如果两者都是\(0\),就在末尾加上\(01\)!都是\(1\)就加最前面!以在末尾加入举例!此时如果开头是\(01\)就会多......
  • C++常用语法知识-- std::istringstream
    C++常用语法知识--std::istringstream介绍std::istringstream是C++标准库中的一个类,它用于从字符串中提取数据,并将数据转换为不同的数据类型。通常从字符串中解析数据,例如整数、浮点数等。使用方法创建std::istringstream对象,首先,需要创建一个std::istringstream对象,将......
  • [924] f-strings in Python
    ref:f-stringsinPythonref:Python'sF-StringforStringInterpolationandFormattingF-strings,alsoknownasformattedstringliterals,areafeatureintroducedinPython3.6thatprovideaconciseandconvenientwaytoembedexpressionsinside......
  • std::istringstream的用法
    1.概要std::istringstream是C++标准库中的一个类,它用于从字符串中提取数据,并将数据转换为不同的数据类型。它通常用于从字符串中解析数据,例如整数、浮点数等。以下是关于std::istringstream的详细用法:创建std::istringstream对象:首先,你需要创建一个std::istringstrea......
  • Educational Codeforces Round 154 (Rated for Div. 2) B. Two Binary Strings
    给定两个长度相等的\(01\)字符串\(a\)和\(b\)。每个字符串都是以\(0\)开始以\(1\)结束。在一步操作中,你可以选择任意一个字符串:选择任意两个位置\(l,r\)满足\(s_l=s_r\),然后让\(\foralli\in[l,r],s_i=s_l\)。询问经过若干次操作后能否使得\(a=b......
  • CF938F Erasing Substrings 题解
    ErasingSubstrings一个神奇的想法是设\(f_{i,j}\)表示在位置\([1,i]\)中,我们删去了长度为\(2^k(k\inj)\)的一些串,所能得到的最小字典序。使用二分加哈希可以做到\(O(n^2\log^2n)\),无法承受。发现对于状态\(f_{i,j}\),它已经确定了\(i-j\)位的串,因为所有\(\inj\)......
  • C error:deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    问题描述解决C++中[Warning]deprecatedconversionfromstringconstantto'char*'[-Wwrite-strings]char*string="aaabbbcc";//warning的原因是字符串常量存放在const内存区...原因主程序初始化字符串,是字符串常量,该字符串的内存分配在全局的const内存区。......
  • CF1767C Count Binary Strings 题解
    CF1767CCountBinaryStrings题解Foreword感谢@樱雪喵、@swiftc两位大佬的耐心指导。Links洛谷CodeforcesDescription有一个长度为\(n\)的01串\(s\)(下标从\(1\)开始)和一些限制\(a_{i,j}(1\lei\lej\len)\)。\(a_{i,j}\)的含义如下:\(a_{i,j}=\)含义......
  • CF762C Two strings 题解
    洛谷传送门CF传送门题意给你两个字符串\(a\)和\(b\),你可以在\(b\)中删去尽量短的子段,使得\(b\)是\(a\)的子序列。求出最后的\(b\)。思路真是奇了怪了,这种题洛谷题解里竟然没有双指针的做法?首先考虑判断一个字符串\(b\)是否是另一个字符串\(a\)的子序列。这......