摘要:
优秀的拆分 import Data.Char import Data.Bits main = do n <- readInt if n `mod` 2 == 0 then solve n 1 else putStr "-1" solve :: Int -> Int -> IO () solve 1 阅读全文
摘要:
"Codeforces Global Round 3" B Born This Way 首先二分从B到C坐的是哪个航班,然后枚举从A到B坐的是哪个航班即可。 C Crazy Diamond 首先考虑2到n 1中的每一个数,如果这个数应该放在左半边,那么可以考虑把这个数从当前位置移动到n,然后移动到应 阅读全文
摘要:
"Codeforces Round 569 (Div. 1)" A Valeriy and Deque 考虑先走n 1步,那么走完了n 1步后最大的数一定就在最前面了,接下来的操作会让后面的n 1个数进入循环,那么对于一个询问$m_i$,如果$m_i include include include 阅读全文
摘要:
Day 0 上午到了济南,住在了山下。下午颓颓颓,zhy在玩炉石,我在...打元气!我的机器人终于不掉HP通关了呢,送的皮肤好好看啊。 Day 1 到考场后,打开题面,一看第一题似乎很可做啊,好像可以全局打标记,我先写个线段树吧。调好了发现,这样怎么就过了啊,随便造了一组数据不开O2都不用跑2s,那 阅读全文
摘要:
A Skyscrapers 暴力离散化之后再乱搞一搞就好了。 E Train Car Selection 答案一定是在一个凸壳上的,那么从前面插入一个点时,就重置一下,凸壳上只有一个点$(0,0)$,等差数列公差$a$和首项$b$也置为0。 从后面插入时要插入$(n, (an+b))$,然后维护凸壳 阅读全文
摘要:
A Toy Train 很显然,一个站有多少个糖,那么就要从这个点运多少次。设第i个点有$a_i$个糖,那么就要转$a_i 1$圈,然后再走一段。很显然最后一段越小越好。 然后枚举起点后,每个点的答案就是起点到他的距离加上再走的距离。然后取个max就好了。 B Wrong Answer "厚颜无耻地 阅读全文
摘要:
竟然又没掉? A Parity 先判断基数是奇数还是偶数,如果是偶数,其奇偶性显然只与个位的奇偶性相关,否则与所有数位的数的和的奇偶性相关。 E Magic Stones 先差分,然后发现操作的本质就是交换两个数,具体可以参考题解。 cpp include define qmin(x,y) (x=m 阅读全文
摘要:
"题目链接" std:meet in the middle 首先把所有的点分成两部分,设$f_i$为前半部分在点集$i$中选出的最大独立集,$g$为在后半部分选。这个可以在$O(2^{m/2})$的时间复杂度里得到。 然后考虑把答案合起来。在f中是从i这个集合里面选出最大独立集,那么后半部分选的集合 阅读全文
摘要:
终于。。 A Roman and Browser 有很多写法,当然我也知道可以暴力,但是前缀和的写法就很舒服啊。 D Dasha and Chess 首先把king移动到中间,然后看一下现在以king为中心的四个象限中那个里面的车最少,然后往相反的方向移。因为少的那个不会超过四分之一也就是166,那 阅读全文
摘要:
终于过了。。调了一天了。。 嗯,记一下有哪些坑点: 首先,MAKE SAME操作可以是设为0,这里要注意一下。 回收点的时候要注意把标记清空。 还有边界的inf要设的合理一点。 然后就没了。。我的一天啊。。 奉上我丑陋无比的代码。 cpp include include include includ 阅读全文