Codeforces Round 1132

这场比赛做了\(A\)、\(B\)、\(C\)、\(F\)四题,排名\(89\)。

\(A\)题\(wa\)了一次,少考虑了一种情况

\(D\)题最后做出来,但被\(hack\)了。。。被\(hack\)的原因是没有想到答案会超过\(10^{12}\)(毕竟这个时间上的优化也是在最后迫不得已的情况下加的,就没有考虑正确性。。。

Codeforces 1132 C

题意:给一些区间\([l_i,r_i]\),从中删掉两个,求剩下的区间最多能够覆盖的格子数量。

思路:首先枚举第一个删掉的区间,然后我们可以通过差分来求出每个格子被多少个区间覆盖了,随后求出所有格子中被\(1\)个区间覆盖的数量的前缀和,再枚举第二个删掉的区间,找删掉的\(1\)个区间覆盖的最少的即为答案。

Codeforces 1132 D

题意:给\(n\)个电脑的电量和耗电速度,你可以买一个充电器,它的充电速度是每秒\(v\)单位,\(v\)你自己定。问最小的\(v\)能使得在\(k\)秒内每秒给某电脑充电,没有电脑的电量小于\(0\)。

思路:首先二分\(v\),然后\(check\)的时候是这样的:

维护每一个电脑没电的时间,每次将最早没电的那个给充电一秒,如果最早没电的那个在充点前已经没电了,那么就肯定完蛋,否则一直跑到第\(k\)秒看是否能跑完。

Codeforces 1132 E

题意:给\(cnt_i\)个\(i\)(\(1\leq i\leq 8\)),问用这些数所能构成的最大的不超过\(W\)的数。

思路:随机+贪心。。。

我们考虑将贪心和一个奇奇怪怪的随机算法结合在一起取最大值。

  • 贪心:我们枚举所有的\(8\)个数的排列,然后将第\(i\)个数尽量取到能取的最大值,加入答案。

  • 随机:首先我们考虑约束条件\(t\)。\(t\)从\(1\)开始,然后逐步收敛为\(t\times0.999999\),\(t\times0.999999^2\)、。。。

    然后我们随机地考虑一个数\(i\),再看如果当前的数超过了\(w\),那么我们肯定要将\(i\)取的个数压下去,则随机\([0,nowchosen_i\times t]\)中的一个作为新的\(i\)取的个数。否则我们需要将\(i\)取的个数加上去,则随机\(nowchosen_i+[0,(cnt_i-nowchosen_i)\times t]\)中的一个作为新的\(i\)取的个数。

最后取这两种方法的\(max\)即可。

Codeforces 1132 F

题意:给一个串\(S\),问每次删除连续的一段相同字母,最少删几次将原串删空。

思路:考虑区间\(dp\),我们看要删多少次能把\([l,r]\)删空,那么最终答案就是\(dp[0,n]\)。

那么就枚举最后一次删除的字符是\(c\)。

由于我们可能有\(ababa\)这种情形,不一定只是\(c-\)段间隔起来的区间们需要被单独处理,而是可能是连续的几段,头尾是\(c-\)段即可。

那么就需要另一个\(dp\)。设\(f(i)\)表示到了第几个\(?-\)段,然后转移到\(f(i+j)\),需要在值上加上\(dp[i+1,i+j-1]\)。

然后用\(f(r)\)更新\(dp[l,r]\)就好辣

Codeforces 1132 C 分析

tataky:

首先我们将所有的互不包含的区间们放在\(v\)里,然后看被包含的区间有多少,如果超过2个就直接输出答案,否则需要通过\(dp\)来求:

首先我们考虑\(dp\)的状态。那么首先我们需要记录删掉了多少个区间\((0..2)\),还要看现在已经到了第几个按顺序排列的区间,并且如果删除的是连续的两个区间,还要存前一个没被删掉的区间在当前的区间前面多少个。

所以\(dp(i,j,k)\)表示现在到了第\(i\)个区间,然后已经干掉了\(j\)个区间,现在连续地删掉了\(k\)个区间,最多可以覆盖的格子个数。

考虑转移。我们考虑第\(i\)个区间是否被删掉,如果删掉,那么转移到\(dp(i+1,j+1,k+1)\),否则转移到\(dp(i+1,j,0)\)。

V--gLaSsH0ldEr593--V、neal、kmjp:

和我的思路差不多,是首先用差分求每一个格子被多少个区间覆盖了,然后考虑枚举第一个删除的区间,看将它删去之后所覆盖只被一个区间覆盖的格子数量最少的区间,这就是第二个区间。只需要处理一下被一个区间覆盖的格子数量的前缀和就可以了。

【Codeforces Round 1132】Educational Round 61的更多相关文章

  1. 【Codeforces Round 1117】Educational Round 60

    Codeforces Round 1117 这场比赛做了\(A\).\(B\).\(C\).\(D\).\(E\),\(div.2\)排名\(31\),加上\(div.1\)排名\(64\). 主要是 ...

  2. 【Codeforces Rockethon 2014】Solutions

    转载请注明出处:http://www.cnblogs.com/Delostik/p/3553114.html 目前已有[A B C D E] 例行吐槽:趴桌子上睡着了 [A. Genetic Engi ...

  3. 【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)

    比赛传送门 A. Shuffle Hashing 题意:加密字符串.可以把字符串的字母打乱后再从前面以及后面接上字符串.问加密后的字符串是否符合加密规则. 题解:字符串的长度很短,直接暴力搜索所有情况 ...

  4. 【cf比赛记录】Educational Codeforces Round 77 (Rated for Div. 2)

    比赛传送门 这场题目前三题看得挺舒服的,没有臃肿的题目,对于我这种英语渣渣就非常友好,但因为太急了,wa了两发A后才意识到用模拟(可以删了,博主真的是个菜鸟),结果导致心态大崩 ---- 而且也跟最近 ...

  5. 【CodeForces 353 A】Domino

    [链接] 我是链接,点我呀:) [题意] [题解] 分类讨论一波 设第一个数组的奇数个数为cnt1 第二个数组的奇数个数为cnt2 显然只有在(cnt1+cnt2)%2==0的情况下. 才可能第一个数 ...

  6. 【Codeforces Gym 100725K】Key Insertion

    Codeforces Gym 100725K 题意:给定一个初始全0的序列,然后给\(n\)个查询,每一次调用\(Insert(L_i,i)\),其中\(Insert(L,K)\)表示在第L位插入K, ...

  7. codeforces 391E2 (【Codeforces Rockethon 2014】E2)

    题目:http://codeforces.com/problemset/problem/391/E2    题意:有三棵树.每棵树有ni个结点,加入两条边把这三棵树连接起来,合并成一棵树.使得合并的树 ...

  8. 【Codeforces 650 D】Zip-line

    题意:给一个序列以及\(n\)个查询,每一个查询是问(假装)把第\(a_i\)个数改为\(b_i\)之后原序列的最长上升子序列的长度. 思路:线段树优化\(dp\). 肯定离线做啊. 首先我们考虑\( ...

  9. 【CodeForces 624D/623B】Array GCD

    题 You are given array ai of length n. You may consecutively apply two operations to this array: remo ...

随机推荐

  1. Matlab Gauss quadrature

    % matlab script to demonstrate use of Gauss quadrature clear all close all % first derive the 2-poin ...

  2. 聊聊大麦网UWP版的首页顶部图片联动效果的实现方法

    随着Windows10的发布,国内已经有越来越多的厂商上架了自家的通用应用程序客户端,比如QQ.微博.大麦等.所实话,他们设计的确实很好,很符合Windows10 的设计风格和产品理念,而对于开发者而 ...

  3. Android ThreadPoolExecutor线程池

    引言 Android的线程池概念来自于Java的Executor,真正的线程池实现为ThreadPoolExecutor.在Android中,提供了4类不同的线程池,具体下面会说到.为什么使用线程池呢 ...

  4. RSA key format is not supported

    对接支付宝时,提示RSA错误 : 请仔细检查 : 创建支付对象时,关键字参数的名字 如果公私钥是以拼接路径的方式传递给AliPay,正确的关键字参数的名字应该如下 :

  5. 【代码笔记】Web-ionic-Range

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. 【Java入门提高篇】Day27 Java容器类详解(九)LinkedList详解

    这次介绍一下List接口的另一个践行者——LinkedList,这是一位集诸多技能于一身的List接口践行者,可谓十八般武艺,样样精通,栈.队列.双端队列.链表.双向链表都可以用它来模拟,话不多说,赶 ...

  7. Tensorflow激活函数

    注意: 1.大多情况下使用Relu激活函数这种激活函数计算快,且在梯度下降中不会卡在plateaus(平稳段),对于大的输入,也不会饱和. 2.logistic function和hyperbloic ...

  8. C# 异步编程1 APM 异步程序开发

    C#已有10多年历史,单从微软2年一版的更新进度来看活力异常旺盛,C#中的异步编程也经历了多个版本的演化,从今天起着手写一个系列博文,记录一下C#中的异步编程的发展历程.广告一下:喜欢我文章的朋友,请 ...

  9. Dos命令讲解

    目录 一.什么是DOS 二.启动DOS的多种方法 三.DOS的内部命令与外部命令 四.系统环境变量讲解 增加Path环境变量路径 常见的系统环境变量 五.常用的运行命令 六.DOS使用技巧 设置CMD ...

  10. January 29th, 2018 Week 05th Monday

    Losing all hope was freedom. 彻底绝望就是真正的自由. Losing all the hopes, and we are free to challenge everyth ...