CodeForces
文章平均质量分 83
Willona_C
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CodeForces 115E Linear Kingdom Races(线段树 + DP)
题意:有n条赛道,m场比赛,比赛需要占用若干条赛道,在举行比赛之前需要修理赛道,利润 = 举办比赛获利 - 修理赛道的费用,当然可以选择不举办某几场比赛,求最大利润。 先将所有比赛所要占用的赛道区间按右端从小到大排序,dp[i]表示前i场比赛可得的最大利润。若第i场比赛的赛道区间为[l, r],则影响利润的一定是l之前的赛道,所以第l - 1条及其之前的赛道都要加上第i场比赛的利润,若要修理第i原创 2015-08-05 22:53:02 · 1100 阅读 · 0 评论 -
CodeForces 46D Parking Pot(线段树区间更新)
题意:一段线性的停车场,长度为L,停车时从零点坐标开始停,要求保证新停入的车前后间距分别为f,b(在停车场的边缘不考虑车前间距或车后间距)。有n次操作,1 a表示停入一辆长度为a的车,要求输出车尾的坐标,2 a表示第a次操作中的那辆车移出停车场(注意:第a次操作不是以1开头的操作中的第a个,因为看错这个,我不停的RE......)。 明显的线段树区间更新,因为之前做过一道类似的题,保存了模板,所原创 2015-08-05 22:33:04 · 881 阅读 · 0 评论 -
CodeForces 13E Holes(分块处理)
题意:有1~n个洞,每个洞i都有一个对应的值v[i],当小球落入洞i中后将弹到第i+v[i]个洞里,直到弹出所有洞。一共m次操作,0 a b表示将洞a的值修改为b,1 a表示询问,要求输出将小球投入洞a后,小球最后弹入的洞和小球弹的次数。 每次修改操作都需要更新,如果暴力一定超时。所以考虑分块处理,将n个洞分成根号n个区块,每次只需要在洞a所在的区块中更新。cnt数组记录小球弹出所在区块需要的次原创 2015-07-27 14:45:18 · 839 阅读 · 0 评论 -
CodeForces 85D Sum of Medians(线段树 + 离散化)
题意:n次操作,有三种操作:加入一个集合中没有的数,删除一个集合中已有的数,求集合中位置模5余3的数之和(集合自动从小到大排序)。 因为操作最多是1e5次,但是数的范围最大到1e9,所以要采用离散化。线段树中每个结点有一个长度为5的数组,来记录模5的余数,还有一个m数组,若在第i个位置插入或删除一个数,则该位置后面的每个结点的m都要加1或者是减1,来记录该结点位置模5后余数的变化。 这道题敲了原创 2015-08-05 23:22:11 · 1058 阅读 · 0 评论 -
CodeForces 296C Greg and Array (线段树)
题意:长度为n的序列;m种操作:a b c表示第a~b个数的值加上c;k次执行:a b表示执行第a~b种操作。最后输出执行完所有操作后的数列。 先用线段树计算出每种操作执行的次数,将操作中要加的数乘以次数更新。再用线段树求出每个位置的数需要加的最终数值。感觉两个都是简单线段树,就习惯性套模板,而且两个线段树又是先后分开执行,所以写了一个线段树就够了。 #include #include #原创 2015-07-27 16:53:12 · 977 阅读 · 0 评论 -
CodeForces 353B Two Heaps
题意:2 * n个两位数,平均分成两份,在两组中分别取一个两位数,第一组中的作为千位和百位,第二组中的作为十位和个位。求可以组成的四位数的个数最大值。 要组成尽可能多的四位数,就要使每一组中重复的两位数尽可能少,最后个数等于两组中不同的两位数的个数之积。 先把所有数从小到大排序,把重复次数超过两次的数拎出来单独分组,把它们平均分到两个组中。再将剩余的数的组号依次循环赋值为1、2。时间复杂度O(原创 2015-08-22 15:37:00 · 914 阅读 · 0 评论 -
CodeForces 353A Domino(水。。)
题意:给n组数,每组数有两个数,要求所有的前一个数之和sum1为偶数,所有的后一个数之和sum2为奇数。可以通过交换某几组数的两个数位置来满足这个要求,求需要交换几组,如果无法满足该要求,则输出-1。 分类讨论,若sum1和sum2均为偶数,则输出0;若sum1和sum2是一奇一偶,则无论怎么交换都无法使二者均为偶数,输出-1;若sum1和sum2均为奇数,则找n组数据中是否存在一组数是一奇一偶原创 2015-08-22 15:09:49 · 1823 阅读 · 1 评论
分享