自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 cf Castle Defense(二分+滑动窗口)

类似区间覆盖的问题,每个弓箭手可以给半径r的区域加防御力,有一些弓箭手未被部署,问你怎么部署可以使得防御力最小值最大. 当然想到是二分,但是二分之后我一开始想的是用树状数组来获得区间和,判断行不行,(一旦不行就给最左边的加这是很容易想到的).然而t了…我优化了好久,最后发现,有且只有最后一组过不了,并且答案已经显示出来了… 然后想到用滑动窗口来判断当前区间和…这个就容易很多.. 然而发现并没...

2018-03-26 16:07:02 250

原创 atcoder Grid Components(构造)

要你构造一个指定联通块数量的黑白图,具体构造方案类似一个一层一层的塔,可以跑一遍程序看.有一些细节要处理,没什么意思.#include <iostream>#include <algorithm>#include <cmath>#include <vector>using namespace std;#define debug(x)...

2018-03-26 13:52:21 322

原创 cf Water Taps

n个水龙头,每个有温度,和他的最大出水量,混合后的温度为出水量乘温度/总水量. 问你要获得目标温度,最多放多少水. 一开始总想着..某种数学方式解决,然后失败… 后来想着应该是二分吧,但是我总是想着 logn * n的方式来直接check答案,但是事实上是n*logn的,首先.是一个贪心的做法(贪心的做法很多都是先无脑放入,然后抠出来),把所有水龙头都拉满,然后这时显然温度会不平衡,那我们就...

2018-03-26 10:17:46 240

原创 atcoder Two Sequences(位处理)

每一位分开处理,希望可以获得所有异或的值中该位的情况. 一开始想用dp的方式,后来发现进位会使得无法处理. 所以直接用求和的方式来判断该位是否存在. 这里的方法是对所有取模,并排序,就可以用二分得到数量. 具体参看官方题解.还是很妙的.#include <iostream>#include <algorithm>#include <vector&g...

2018-03-24 13:44:22 282

原创 最近

其实这篇博客早该发了,只是这两天要不卡题,要不太晚了累.. 一开始的兴奋冲淡了吧,我远远不够,仍然没有做出一题有价值的题,刚好当时的题目,使用stl乱搞是方便的,我刚好手比较熟,所以取得了优势,但是现在的我,仍然没有任何上限的提升. 并没有....

2018-03-22 23:28:00 116

原创 cf Directed Roads

这题和我上一篇博客有着惊人的相似.. 同样的陈述,只是每个指向变成了有向的,问你选择一些边来翻转,如果翻转之后不存在环,那就是可行的,这种可行方式有多少种. 我们反向考虑,翻转后会存在环的方式有多少种,按照上一篇博客的方法,进行剥离,这里不存在”完美树”只有2,3.这里,因为有向环的定义,2也被认定为一种特殊的环. 这题在组合上的计算是容易的. 发现了这个图的性质,按照之前做法即可.#...

2018-03-22 23:25:30 132

原创 cf Fix a Tree

每个点,跟一个点一定连边(有可能是他本身),当然,这样给出的一组数据,不一定是一颗完美的树(有且只有一个点是连他本身,当然不存在环),要你进行最少的修改,使其变成一个树. 首先,这显然是一个类似森林的定义,我们可以dfs出一个联通块,然后对他的性质进行判定 1.一旦出现一个点指向自己,那这一块一定是一颗正常树. 2.一旦出现一个点指向的那个点指向的是他自己(互相指向),那他是一棵树,只是存在...

2018-03-22 23:20:29 132

原创 Reverse and Compare(dp)

给出一个字符串,让你翻转一次某一个区间,问你一共能得到多少种不同结果. 一开始想着跟回文串有关系,但是只是剪去回文串还是有多的,就是一个翻转区间哪怕不是完全回文,只是两端相同,也仍然会被重复计算.然后就很绝望,想要枚举统计所有字符的距离出现次数,发现不可行. 根据我做的一点点atcoder题目就猜是dp,果然,很裸.T^T dp[i]前i个字符可以获得的不同结果数量,那么在每加一个字符时,先...

2018-03-14 19:39:01 204

原创 Unplanned Queries(猜)

又是猜的..但是看了题解,有一些地方还是可以的. 是否存在一棵树,满足所有边都被走过偶数次. 给出所有需要走的路的头尾. 这题关键在于,树上两点想要走通,一种是不走根,直接互联(当然有的只能走根),第二种是走根(当然在很多时候这是浪费的),我们只关心奇偶性的情况下,这两者等价. 那么好了,我们可以把所有路线,都变为过根的次数. 我这里用的是以1点为根,树为一条链的直接计算,其实是一样的....

2018-03-14 15:21:40 165

原创 Hamiltonish Path(模拟)

这题吧..真的一点思路都没有,不知道从何下手.. 看了题解,只是简单的一步步满足下去,似乎并没有什么思维量,原因也只是因为一定有解,这就让人很痛苦了… 假定两个端点,一个端点不行,就换成他连接的某点做端点. 第一次用deque#include <iostream>#include <queue>#include <vector>using n...

2018-03-14 14:39:58 263

原创 Codeforces Round #470 Div. 2 D Perfect Security(字典树求异或最小 唯一)

给出一些数a[i],和一些数b[i],要你把a[i]中的数,依次找到b[i]中的某个数进行异或,使得越前的a,得到的值越小即可,但是b的数只能用一次. 显然是用字典树,在插入的过程中,每个数在他的路径上标记,那么在他被选中的时候,删去标记,就可以了.#include <iostream>#include <cmath>#include <cstring&...

2018-03-12 15:04:26 245

原创 cf round 470 b Primal Sport

好菜啊..这种数学题,基本只能靠猜.. 猜了猜,打了打表,苟过了…#include <iostream>#include <cmath>#include <cstring>#include <algorithm>using namespace std;#define debug(x) std::cerr << #x &...

2018-03-12 10:44:50 336

原创 cf round 470 c

每天生产一堆雪,每天有一个温度,所有雪会融化该温度的体积. 问你每天融化多少雪. 每天,把当天的雪,当作是第一天就已经存在的雪放入multiset,然后遍历,如果包括上这一天及之前的所有温度和都不能满足的雪体积,是需要在今天融化完毕的,直接erase掉.其他的,就可以承受今天的融化量,直接乘以数量即可.#include <iostream>#include <set...

2018-03-12 09:36:24 110

原创 差分

差分..好厉害的名词,其实听过几次,但是一直没什么感觉,就目前见过几次来说的话,就是一个数组,存a[i]-a[i-1]这样. 一些时候,如果看当前数字看不出规律,可以试着从差分上找. 好菜啊 T^T boxes#include <iostream>#include <vector>#include <set>using namespace std...

2018-03-11 18:08:26 309

原创 Educational Codeforces Round 39 D Timetable

500 有n天,每天m个小时,1为有课,0为没课,每天都必须要从第一节课开始待到最后一节课结束,但是可以翘课,最多翘k节,问你最少只需要在学校呆几天. 都是500的数量级 事实上..这是个很容易的dp.. 先处理一个zt[i][j],意为第i天如果翘j节课,最少再学校呆多少小时 n^3可以处理出来. (这个像一个格子移来移去的方法好像好常用啊,没什么好讲的就是..) 然后就是一个简单...

2018-03-08 16:03:46 143

原创 BBuBBBlesort!

这题是猜的… 给你一个不重复序列,有两种操作方式,一种是三个一起翻转,一种是两个一起翻转,猜了一下,好像如果是3个一起,那么只有左右两边会互换,如果一个点距他该在的地方位置是奇数,那就很尴尬,每次2个的距离改变,永远都没用,所以必须要一次两个翻转,ans = num/2+num&1.#include <iostream>#include <algorithm&...

2018-03-07 14:59:21 318

原创 一个很好的dp

Don’t Be a Subsequence 具体以后再补.没有想的很清楚 是这样.. 首先,需要确定这个最短子串的长度,不是单纯的字典序最小,所以..就被他们想出来了个转移方程,dp[i]为[i….)这一段中最短的非子序列长度,那么此前的每一个,都是由后者可以转移而来,事实上,也就是枚举26个字母,最后返回来,走一遍来时的路,可能有多个满足条件的,取字典序最好的就行.#include ...

2018-03-05 14:08:10 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除