摘要: 又困又累总之状态不是很好。。就拿个小号随便打打了。。。 A.n个小写字母选k个, 若选了一个字符c,那么它前面的字母和与它相邻的右边的第一个字母不能选,求最小价值. 排序后xjb贪一贪...智障错误wa+1.。。 1 #include <iostream> 2 #include <cstdio> 3 阅读全文
posted @ 2018-07-27 11:40 Kaleidoscope233 阅读(176) 评论(0) 推荐(0) 编辑
摘要: AtCoder Beginner Contest 103 D 题目大意:n个点,除第n个点外第i与第i+1个点有一条边,给定m个a[i],b[i],求最少去掉几条边能使所有a[i],b[i]不相连. 按右端点从小到大排序,如果当前选的去掉的边在区间内,那么符合条件,否则ans++,并贪心地把去掉的边 阅读全文
posted @ 2018-07-22 21:22 Kaleidoscope233 阅读(258) 评论(0) 推荐(1) 编辑
摘要: 洛谷 P2804 神秘数字 题目大意:n个数,求有多少个连续区间和平均值大于m. n个数先都减掉m,然后算一遍前缀和,那么就是要找多少个区间和大于0. 转化为s[j]-s[i]>0即s[j]>s[i](j>i),那么就是求顺序对了. 由于出现负数难以离散化,所以还是用归并排序倒过来求逆序对,效率nl 阅读全文
posted @ 2018-07-20 11:34 Kaleidoscope233 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 这场.. 不知道说什么好了唉。。。 A.签到++ 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <queue> 6 #include <map> 7 #defi 阅读全文
posted @ 2018-07-17 22:09 Kaleidoscope233 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 最近在搞搞Trie,写篇博客总结一下吧. Trie就是将字符串的每个字符用树的边储存,查询时只要沿着根节点往下爬。 Trie的根节点为空,表示空串. 在详细的操作前,我们先了解一下几个数组。 trie[u][c]=x表示编号为u的节点的第c个孩子编号为x. 这里的编号有两个含义,u,x表示字符插入t 阅读全文
posted @ 2018-07-08 15:58 Kaleidoscope233 阅读(176) 评论(0) 推荐(0) 编辑
摘要: C. Sonya and Robots 题目大意:有n个数,每个数只能与自己后面的数配对,相同的配对只算一个,求配对的数量. 我们反过来考虑每个数可以与自己前面多少个数配对,得到答案是不变的. 如果前面的数都不相同的话,那么这个数对答案的贡献是i-1,如果有相同的,那么只要减去相同的就好了. 所以在 阅读全文
posted @ 2018-07-07 15:06 Kaleidoscope233 阅读(397) 评论(0) 推荐(1) 编辑
摘要: 一开始网站爆炸,502刷新了10min,那时就知道这场要gg了。。。A.签到题B.求一个01串包含a个0,b个1且恰好有x个位置s[i]不等于s[i+1];考虑a,b大小关系确定第一个是0还是1,前面构造x-1个10或01,后面就连着输出相同的就好了。没看到样例wa3两次。。。 1 #include 阅读全文
posted @ 2018-07-07 14:57 Kaleidoscope233 阅读(223) 评论(0) 推荐(0) 编辑
摘要: C - Linear Approximation题目大意:长度为n的序列,找任意一个整数b,使abs(a[i]-(i+b))的和最小。先将a[i]减去i,那么就是求a[i]-b的绝对值和最小.转换模型我们可以把a[i]看成数轴上的点,那么就是要求数轴上一个点到其他点的距离最小。曾经在蓝书上看过这个结 阅读全文
posted @ 2018-07-07 14:55 Kaleidoscope233 阅读(134) 评论(0) 推荐(0) 编辑
摘要: C. Convert to Ones题目大意:一个长度为n的01字符串,反转任何一个连续区间价值为x,将任意一个全为0的子区间改为1价值为y,求将字符串全变为1的最小价值。这题也是看了好久才找到规律。我们可以发现,若要用x操作,就是要把1通过反转连起来,那么剩下的0的子区间就用y操作。那么要用多少次 阅读全文
posted @ 2018-07-07 14:53 Kaleidoscope233 阅读(140) 评论(0) 推荐(0) 编辑
摘要: C. Covered Points Count题目大意:有n条线段,问有多少个点被i条线段覆盖(i=1~n)。很常见的线段覆盖套路题QAQ。坐标排序后把左端点当做+1,右端点当做-1,扫一遍统计答案即可。但是记得开ll,数组大小开双倍。 1 #include <iostream> 2 #includ 阅读全文
posted @ 2018-07-07 14:52 Kaleidoscope233 阅读(257) 评论(0) 推荐(0) 编辑