蒟蒻修养之cf橙名计划
27
因为太弱,蒟蒻我从来没有上过div1(这就是今年的最后愿望啊啊啊啊啊)已达成................打cf几乎每次都是fst...........所以我的cf成绩图出现了惊人了正弦函数图像.............
所以现在刷div1的abc(估计只能a和b?)..............学习各位神犇直接简略题解吧...............
upd:14.12.31日成功紫名233~~
【494A】裸构造...每个#取1最后一个取完即可...
【494B】裸DP...以b的下标设状态...这么水的题我不会说我想了很久哒......
【487A】暴力...我就不说我因为精度问题调试了好久...一开始还写了个二分...tle成翔...暴力就是枚举a和d(因为a一定<=200, d<=100)
【487B】$O(n^2)$的dp很好想吧...(一开始我竟然想到二分答案去了....),然后想优化...这个1D1D的模型用裸multiset可以搞定(就是维护一下区间,因为max-min<=s的区间单调向右)...然后我惊人的发现了multiset的erase的删除是删除所有元素,于是喜闻乐见调试了一天...
【484A】太弱了不会...题解高大上...T_T我一直没想通怎么约束区间[l, r],尤其是$>=l$,看来我尤其sb...其实只要将一开始的数从l开始每一次尝试添加位就行了啊QAQ
【484B】式子都推到了一半了QAQ然后放弃了....如果能再推一下就出来了QAQ。就是找$a[i] \equiv b(mod a[j])$,化简一下就是$xa[j]=a[i]-b, 即b=a[i]-xa[j]$,要最大化b,考虑暴力枚举$a[j]和x$,然后每一次找最大的$[xa[j], (x+1)a[j]-1]$的$a[i]$来更新b即可(暴力前缀和就行)。复杂度$O(n ln n)$(xx级数)
【482A】裸构造...一开始看错题还wa了一发...就是每次先做差为1的排列,从大到小有n-k个,然后剩下的排列的差按k-1, k-2, k-3...这样下去就行了
【441C】裸模拟...
【498A】半平面交...可是我没学过啊QAQ反正答案就是在两个点之间的直线数目(然后莫名fst) //后来发现是sb题...这种题不可以做一条与一直平行的直线穿过这个点然后看节距吗,我是傻x。。。
【498C】最大流...将他们分解质数然后跑最大流。可是我又fst...原因就是没有考虑他们都是相同大质数QAQ不就是很久以前我在筛质因子那里犯的sb错么QAQ然后本题很神,询问性质$i+j=odd$,这样就能建二分图而不会重复了QAQ
【461A】贪心...每次选最小的分离即可
【455A】DP..排序后设状态为d[i][0]和d[i][1]表示取和不取,然后搞搞就行了....
【449A】好神的题!首先暴力思想划分x和y块,然后最大化$floor(n/x)*floor(m/y), x+y=k+2$,而显然根据下界除法的性质,我们只要最小化$x*y$,然后分类讨论即可。
【449B】好神的题!因为只是求根到各个点的最短路,我们只需要将各个点的最短路初始化为最短的route且dijkstra内加入这些权。根据dij的性质,当一个点松弛完后,堆中的这个节点的边都作废,因此可以这样累计多少边了。ps:pair重载的<是第一关键字按<且第二关键字也按<
【431C】好裸的dp...
【431D】二分+数位dp..我就不说单调性是我打表打出来的....数位dp的话按二进制来搞就行了。。。我就不说ll没开爆了一次wa...
【434A】暴力...将每一个数相邻的数存起来,然后取中位数算绝对值...均摊$O(nlgn)$...我就不说vector的size==0时没特判导致re两回...
【434B】单调栈...维护四个方向的矩阵,然后查询相应的最大矩阵...最sb的是,我之前维护的是最大面积...而不是向左和向右拓展的最大长度...维护好向左向右最大长度后查看是否点在内就能查询了...
【438A】贪心...不知道怎么想到的...随便画了下图发现每条边都一个端点都取过了...因此每条边取最小的端点的权...
【497A】贪心...自己比较sb....其实只要从左到右依次找本行是否满足要求(且前边取的行标记一下)就行了...竟然我当时没有做出来..
【429A】乱搞...发现每个点显然最多动一次,发现每个点如果当前和期望不同那么显然自己和祖先要动奇数次,发现每个点只要从自顶向下那么一定确定了如何动...然后模拟即可...
【406A】手推一下发现每一次改变答案都会^1....
【407A】暴力推出A和B能被平方数和构成的方案,然后暴力枚举...我就不说第一次我没看题是直角三角形...第二次没有判x和y平行...第三次还打错...
【444A】贪心...一开始画了几个例子感觉就是选一条边然后算边权...然后就过了..............证明:设$B=\frac{\sum u + \sum v}{\sum c}$是最大值, 那么$B>\frac{u+v}{c}$,即$Bc>u+v$,而显然有$B\sum c > \sum u + \sum v$,即$B>\frac{\sum u + \sum v}{\sum c}$,与假设矛盾
【372A】贪心+二分...发现一个数被另一个数b包含则一定有比这个数大的也能包含。那么最优策略就是选更多的小的,然后用大的来匹配。于是单调性,二分之。
【372B】dp....设f[a,b,c,d]表示矩阵(a,b)-(c,d)的方案数,有f[a,b,c,d]=f[a,b,c-1,d]+f[a,b,c,d-1]-f[a,b,c-1,d-1]+cost(c,d),这里的cost(c,d)表示包含点(c,d)向左向上拓展能得到的方案数,而cost也挺简单求的,我们预处理一下以这个点向左向上的最大长度,然后发现方案就是当前行的连续的个数+当前列连续的个数-1+cost'(c-1, d-1),这个cost'(c-1,d-1)表示他们是否有相同长度...如果(c-1,d-1)能拓展的长度没有当前格子c,d拓展的长,那么取min。
【504A】推了一下发现:题目已经给出一定有解,且对于度为1的点,我们只需要找和他当前xor和一样的标号就行了,然后类似拓扑排序