B - Informatics in MAC 策略:找到整个数组的 ,并尝试让每个子数组的 ① 分成两段,保证每段都包含有 的所有数至少一个 ② 区间 的数若少于两个,则直接 ③ 欲判断①,只需要保证 内的所有数 初次出现的坐标 都小于 最后一次出现的坐标 C - Messenger in MAC 思路:穷举所有 可能取值与其对应的区间,在区间内挑尽
AmirrzwM— ICPC World Finalist (2024, 2025), author of Codeforces and Rayan Rounds, and INOI (Iranian National Olympiad in Informatics) Silver Medalist. MohammadParsaElahimanesh— Author of Codeforces and Rayan Rounds, INOI Silver Medalist, and top problem solver on Quera. ...
size();i++){ if(s[i]<rs[i]){ f=1; break; } if(s[i]>rs[i]){ f=0; break; } } if(f){ cout<<s<<'\n'; } else { cout<<rs<<s<<'\n'; } } B - Informatics in MAC 找整个数组的 mex 值 x ,按题目分块后每块的mex值一定是x 可以反证,如果选的mex值是y,且y<x,...
AmirrzwM— ICPC 2024 World Finalist, Author of Codeforces Global Round 23 and Rayan Selection Round, Iranian National Olympiad in Informatics (INOI) Silver Medalist. MohammadParsaElahimanesh— Main Author of Codeforces Global Round 23 and Rayan Selection Round, INOI Silver Medalist. Best problem sol...
B. Informatics in MAC 首先我们考虑到,如果两个相邻区间的MEX相同,那么这两个区间合并之后的MEX不变,所以,如果存在k>2中划分方式,一定可以合并成为2个区间,称这两个区间为a,b。 我们考虑到如果一个数字x只出现了一次(并且小于它的数字都出现了至少两次),那么x一定只在a或b中出现,那么这两个区间的MEX一定不...
1935B-InformaticsInMAC.cpp 1937A-ShuffleParty.cpp 1937B-BinaryPath.cpp 1941A-RudolfAndTheTicket.cpp 1941B-RudolfAnd121.cpp 1941C-RudolfAndTheUglyString.cpp 1942A-FarmerJohnsChallenge.cpp 1942B-BessieAndMEX.cpp 1944A-DestroyingBridges.cpp 1944B-EqualXOR.cpp 1945A-SettingUpCamp.cpp 1945B-Firewor...
B.Informatics in MAC 题意:问是否能把一个数组划分成k段,使得每段的mex值一样。 出现mex这种特殊的值自然可以猜一猜性质。 假设每段的mex都==d,则: 1.d不能在数组中出现 2.[0,d-1]都必须在数组中出现 综合以上两点可以推出d必然是原数组的mex。 那么只要o(N)扫一遍,检查当前是否凑齐了[0,d-1]...
1935B-InformaticsInMAC.cpp 1937A-ShuffleParty.cpp 1937B-BinaryPath.cpp 1941A-RudolfAndTheTicket.cpp 1941B-RudolfAnd121.cpp 1941C-RudolfAndTheUglyString.cpp 1942A-FarmerJohnsChallenge.cpp 1942B-BessieAndMEX.cpp 1944A-DestroyingBridges.cpp 1944B-EqualXOR.cpp 1945A-SettingUpCamp.cpp 1945B-Firewor...
4|0C. Messenger in MAC 首先一眼将二元组按照bibi排序,考虑当我们确定选取的下标位于区间L,RL,R时,后面的贡献总是bR−bLbR−bL 由于本题数据范围允许O(n2)O(n2)枚举区间,因此确定端点后就是要在[L+1,R−1][L+1,R−1]中找出最多数量的数使得它们的和小于某个值了 用权值线段树随便处理一下,...
B. Informatics in MAC 直接找到整个数组未出现的最小值c,如果它不可以作为每个part的MEX结果,那么后续的值肯定也不可以(因为更大的值MEX需要c的参与,而c不存在)。如果合法,就直接拆成两块输出,不合法则返回-1 实现代码 #include<bits/stdc++.h> #define endl '\n' using namespace std; typedef long lon...