abc 348 C
用该方法解题比较简单
https://atcoder.jp/contests/abc348/submissions/57471962
abc 347 C
约瑟夫问题,把去重后的数据找到一段连续的天数,使这些天数不超过 a
// 去重操作,unique函数改变 D 的位置,但没有删除,只是将出现过的数放到前面,返回的是前面非重复元素的下一个迭代器
std::sort(D.begin(), D.end());
N = std::unique(D.begin(), D.end()) - D.begin();
// 或与 erase函数联用
d.erase(unique(d.begin(), d.end()), d.end());
abc 345 C
只有有相同字母的时候,原数组才能作为答案的一个
abc 344 C
所有 a + b + c 的值是1e6,再其中存储所有可能,用二分或者 set 的方式查找有无 x 是可以接受的
对于每个 x 看有无 a + b + c == x 时间复杂度很高,不合理
std::set<int> s;
s.insert(1);
cout << (s.count(1) ? "Yes" : "No" ) << endl;
abc 342 C
题意理解有误
每次转换字符,把当前状态为该字符的字符变成要求的字符
并查集会永久改变字符的状态,使之后想要变为该字符的也变为之前字符变过的字符,全部指向根节点是行不通的
此题对状态改变的有效性只有一次,如果转化为图,26个字母作为根,之间移动的是代表字符串每个位置的下标,而不是字母本身
改变的是每个字母对应的状态