08 2024 档案
摘要:https://codeforces.com/contest/2003/problem/C 题意:。。。 思路:如果要使满足条件的有序对最多,那么首先如果两个字符相等,那么无论如何排列,最终的贡献值都不会变。 再看字符不相等的情况, 假如有aabbcc,那么abcabc总是优于aabbcc,因为如果
阅读全文
摘要:https://codeforces.com/contest/1998/problem/D 思路:求出到达每个点的最短路径,然后从每个点i考虑跳跃到点j(i->j有边),i+1默认为必胜态,则必败态为j - 从1~j的步数。 如果必败态所在的位置>必胜态,则更新差分数组,最后求和即可。 总结:一开始
阅读全文
摘要:A. Make All Equal 题意:给定n个数每次可以选2个相邻的数,并且前面的数不能比后面的数大,并且删除其中的一个。这个数组是循环数组,最后一个数是第一个数的前一个数。问最少操作多少次,可以让剩下的数全都相等。 思路:红黑树+一次遍历,记录出现次数最多的数,剩下的数全部删掉即可。 总结:看
阅读全文
摘要:https://codeforces.com/contest/2004/problem/D 题意:给定n个字符串,每个字符串有2个字符,如果两个字符串中有相同的字符,则这两个位置互相到达,到达的代价为坐标距离。并且所有字符串的种类只有6种,给定m个查询,求两个地方到达的最小代价。 思路:直接暴力,为
阅读全文
摘要:https://codeforces.com/contest/2004/problem/C 总结:一开始看错题了,思维惯性的认为alice会拿前一半大的元素,bob会拿后一半大的元素。。其实不是,而是每个人都挑最大的拿 void solve(){ int n, k; cin >> n >> k; v
阅读全文
摘要:思维问题 题意:n个room和n-1个door,给定两个区间,有俩人在这两区间的任意房间中。问锁多少个door,可以保证两人不会见面。 思路:如果两个区间没有重叠,则锁一个门即可。如果有重叠,首先要把重叠的区间中门全锁住,然后判断两个区间左右端点是否重叠,如果不重叠还要锁靠内的区间端点的门。 voi
阅读全文
摘要:A. Primary Task 枚举所有情况即可 void solve(){ string s; cin >> s; if (s.substr(0, 2) != "10" || s.size() < 3 || s[2] == '0' || (s.size() < 4 && s[2] < '2'))
阅读全文
摘要:https://www.luogu.com.cn/problem/P1972 莫队算法被卡,只能得60points 正解有点像基于贪心的fenwick tree策略 fenwick的每个位置表示当前位置上是否是某个数的最后一次出现位置,值为0或者1 右指针升序排序,然后右指针移动过程中更新每个数最后
阅读全文
摘要:题意:给定n个数,每次操作任选两个数,将其中较小的数改为它们的和。问最小操作次数可以让n个数奇偶性相同。 思路:如果初始时奇偶性相同,则不操作,否则,最后结果一定是数组中全为奇数。找到最大的奇数,对偶数排序后考虑所有的偶数。如果当前奇数 > 偶数,则更新奇数最大值为偶数和奇数的和。否则,奇数要先变的
阅读全文
摘要:没有时间参赛 直接补几道简单题吧~ B. Make Three Regions 题意:给一个2行的字符串,有block和其他东西,问把一个位置变成block让联通的部分变成3个部分,有多少种方法 思路:找规律,找所哟符合条件的块即可 void solve(){ int n; cin >> n; ar
阅读全文