0929模拟赛
今天打的是真菜\(QWQ\)
\(T1:\)给\(a_1\)到\(a_n\)和\(s\),问是否存在\(k\),使得\(\sum_{i=1}^N (a_i\;mod\;k)=s\)。
这么菜的题为啥没做上来呢?
哦,原来是没有理解取模运算的本质啊?所以本质是什么?除后的余数,那末除的本质呢?减!
所以\(a\;mod\;k=a-\left \lfloor \frac{a}{k} \right \rfloor k\)也可以说是\(a-nk\)
故原式\(=\sum_{i=1}^N a_i-nk=s\)即\(=\sum_{i=1}^N a_i-s=nk\)推到这就很简单了,求\(\sum_{i=1}^N a_i-s\)的所有因数,检验这个因数是否可以做\(k\)
\(T2:\)题面点这里最大值最小,想二分,考虑如何\(check\)。设当前要check的答案为\(x\),
则对于一\(a_i\),要满足\(b_j<=x-a_i\),因为a越小,对b的限制越松,越容易成功,故将a按从大到小排序,每次取\(a_i\),则就将可以的\(b_j\)放入一个按a从大到小排序的优先队列,每次取队头,并与当前\(a_i\)共同标记已选,若能选到最后,则\(return\;1\)
这道题其实就是要注意到a与b匹配,a越大b成功机会越大,将a降序排序,由于硬枚举时间会炸且对a顺序有要求,就将b放优先队列。
\(T3:\)这是唯一一道题解讲的清楚的了。
由于题解中的父子关系,可想到拓扑排序。
无根树咋搞呢,当某个点被一次操作后便不能再动了,他便可以作为根。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号