前面说点什么..

为了完成日常积累,傻逼呵呵的我决定来一发codeforces 挑水题 泛做..

嗯对,就是泛做..

主要就是把codeforces Div.1的ABCD都尝试一下吧0.0..

挖坑0.0..

Codeforces Round #360

A. NP-Hard Problem

就是一个二分图染色,判断是否为二分图而已..

B. Remainders Game

题意:有一个未知的\(x\)和已知\(x\ mod\ c_i\)的值,问是否能确定\(x\ mod\ k\)的值

考虑一下中国剩余定理,由这些不等式是可以得到\(x\ mod\ lcm(c_i)\)的值的,那么也就是说是可以知道\(x=lcm(c_i)\times t+res\),其中\(t\)是常数
那么只要\(gcd(k,lcm(c_i))=k\)就能够知道答案的值,否则就不
这道题有个trick,是HWizard大爷教我的(%%%HWizard):因为\(lcm(c_i)\)是非常大的,所以我们可以先把\(c_i\)变成\(gcd(c_i,k)\),这样不会导致上面的问题..

C. The Values You Can Make

题意:给出\(n\)个硬币,价值为\(c_i\),求所有得到\(k\)面值的硬币集合所能达到的所有子面值..

定义\(f_{i,j,k}\)为前\(i\)个硬币,凑齐了\(j\)面值,能够达到\(k\)面值的情况..
递推一下就好了
复杂度为\(O(nk^2)\)

D. Dividing Kingdom II

题意:\(n\)个点,\(m\)条双向边,每个询问把\([l...r]\)的边加到图中,把点黑白染色,求所存在边两端点相同颜色中所有边权的最大值,不存在这种边就输出\(-1\)

考虑一种贪心策略,假设\([l...r]\)的边按边权从大到小依次加入,那么对于前面的边当然是让他们两端点染色不同答案才不会是那条边的边权而是后面比它更小的答案,就用一个带权并查集维护一下就好了..
这种做法的复杂度是\(O(qm)\)的,也不知道为什么能过..

Codeforces Round #361

D. Friends and Subsequences

题意:有两个大小为\(n\)的数组\(a\)、\(b\),求区间个数,使得该区间内\(\max\limits_{i=l}^{r}a_i=\min\limits_{i=l}^{r}b_i\)..

扫一遍右端点\(r\),设\(mx_i\)表示\([i,r]\)里\(a\)的最大值,\(mn_i\)表示\([i,r]\)里\(b\)的最小值
那么\(mx\)是单调不升的,\(mn\)是单调不降的
所以\(mx_i-mn_i\)是单调不升的
就可以二分一个区间\(mx_i-mn_i\)都是等于\(0\)的就是答案啦..

E. Mike and Geometry Problem

题意:给出\(n\)条线段,求每\(k\)条线段交集的长度和..

离散化,针对离散化后的每个区间来做
如果这个区间有\(p(p\geq k)\)条线段覆盖了,那么这个区间就会贡献\(len\times C_k^p\)的答案

Codeforces Round #362

A. Lorenzo Von Matterhorn

题意:有一棵满二叉树,\(i\)节点的孩子为\(2i\)和\(2i+1\),操作是把\(u\)到\(v\)的路径上的边权全部加上\(w\),询问是问\(u\)到\(v\)的路径长度

对于操作,把\(lca\)到\(u\)、\(v\)的路径上所有点权全部加上\(w\)
对于询问,把\(lca\)到\(u\)、\(v\)的路径上所有点权全部加起来就可以了..
用map来映射就行了..

B. Puzzles

题意:给出一棵树,问每个点的期望dfs序..

对于\(x\)节点的两个孩子\(y_1\)、\(y_2\),\(y_2\)对\(y_1\)的贡献就是有\(\dfrac{1}{2}\)的概率贡献\(size_{y_2}\),有\(\dfrac{1}{2}\)贡献\(0\),那么总贡献就是除它以外所有孩子的size和除以2

C. PLEASE

题意:三个杯子,一个钥匙一开始放在中间的杯子里,每次有\(\dfrac{1}{2}\)的概率交换前两个,有\(\dfrac{1}{2}\)的概率交换后两个,进行\(n=a_1a_2a_3...a_k\)次操作后钥匙还在中间的概率..

那么很容易推出这样的一个矩阵来推移:\[\begin{pmatrix}\dfrac{1}{2}&\dfrac{1}{2}&0\\\dfrac{1}{2}&0&\dfrac{1}{2}\\0&\dfrac{1}{2}&\dfrac{1}{2}\end{pmatrix}\]
然后再推多几个矩阵就可以得到以下几个矩阵:\[\begin{pmatrix}\dfrac{1}{2}&\dfrac{1}{2}&0\\\dfrac{1}{2}&0&\dfrac{1}{2}\\0&\dfrac{1}{2}&\dfrac{1}{2}\end{pmatrix}\begin{pmatrix}\dfrac{1}{2}&\dfrac{1}{4}&\dfrac{1}{4}\\\dfrac{1}{4}&\dfrac{1}{2}&\dfrac{1}{4}\\\dfrac{1}{4}&\dfrac{1}{4}&\dfrac{1}{2}\end{pmatrix}\begin{pmatrix}\dfrac{3}{8}&\dfrac{3}{8}&\dfrac{1}{4}\\\dfrac{3}{8}&\dfrac{1}{4}&\dfrac{3}{8}\\\dfrac{1}{4}&\dfrac{3}{8}&\dfrac{3}{8}\end{pmatrix}\]
然后一个一个推下去就会发现答案是酱紫的一个序列:\[\dfrac{0}{1},\dfrac{1}{2},\dfrac{1}{4},\dfrac{3}{8},\dfrac{5}{16},\dfrac{11}{32},\dfrac{21}{64}...\]
那么这个时候我找到一条规律:分子是\(f_i=2f_{i-2}+f_{i-1}\),分母就是\(2^{n-1}\)
然后用这个东西矩乘一下发现常数太大TLE了.. 就去请教HWizard大爷..
他就帮我化了个分子的通项公式:\[f_n=\left\{
\begin{aligned}
\dfrac{1}{3}(2^{n-1}-1),\ n\ mod\ 2\ = 1 \\
\dfrac{1}{3}(2^{n-1}+1),\ n\ mod\ 2\ = 0
\end{aligned}
\right.\]
瞬间就会做了0.0..

D. Legen...

不说了AC自动机+dp+矩阵优化的大水题..

Codeforces Round #363

A. Vacations

感觉不会太难,没做..

B. Fix a Tree

题意:给出\(n\)个点,每个点都有一个父亲,要求改最少的父亲使得这变成一棵树

很容易就看出只有环是要改的,而且随便改一个点连到根就可以了..
那就是很水的题了..

C. LRU

题意:有\(n\)个数,有\(m\)个格子,进行\(10^{100}\)次操作,每次从\(n\)个数里面随便找出一个数,每个数有\(a_i\)的几率被选中,如果已经在\(m\)个格子里就不用管,不然就替换掉最早放的那个,问每个数最后在这\(m\)个格子的概率..

因为进行了很多次,那么这\(m\)个格子最后的状态只和最后\(m\)次操作有关..
然后就状压DP就好了..

Codeforces Round #364

A. As Fast As Possible

这道题是比赛的时候做的..
就是让所有船全部同时到达就对了,大概是酱紫(但是精度不允许):

精度的话就二分一下吧0.0..

B. Connecting Universities

题意:一棵树有\(2k\)个黑点,两两黑点配对,问每一对距离的和最大是多少..

以\(1\)为根,\(f_i\)表示\(i\)的子树内的黑点个数
那么对于某条边\((fa,x)\),能做出的最大贡献就是\(min(f_i,2k-f_i)\)
把所有边的最大贡献加起来就好了

C. Break Up

题意:\(n\)个点\(m\)条边的无向图,每条边都有边权,给出\(s\)和\(t\),要求最多删去两条边,使得\(s\)和\(t\)不连通,求最小花费以及方案.

先判断是否连通,然后找一条从\(s\)到\(t\)的简单路径,这条路径肯定有一条边要删
枚举删去哪一条边,然后再用双连通分量判断,如果已不连通答案就是这条边的边权,否则就删去\(s\)到\(t\)中间的桥
总体复杂度是\(O(nm)\)的

Codeforces Round #365

这套题比较水.. 基本都是一眼题0.0..

Codeforces Round #366

A. Thor

题意:就是雷神托尔闲着无聊玩手机,然后有好多好多的app消息,\(n\)个app,\(q\)个操作
1.第\(x\)个app发了一条消息
2.托尔一次性把第\(x\)个app的消息全部读完
3.托尔把最早发的前\(t\)条读完..
要求输出每个操作之后的剩余未读消息

那么就是线段树维护一下每个app剩余的未读消息,再搞个队列保存前几个消息是哪个app发的就行了0.0..
水题0.0..

B. Ant Man

题意:Scott Lang is at war with Darren Cross.然后蚁人要从\(s\)跳过所有的点在\(e\)结束,问最小费用..
\(a_i\)表示从比\(i\)大的节点跳入\(i\)节点的花费
\(b_i\)表示从比\(i\)小的节点跳入\(i\)节点的花费
\(c_i\)表示从\(i\)跳出到比\(i\)小的节点的花费
\(d_i\)表示从\(i\)跳出到比\(i\)大的节点的花费

dp即可,\(f_{i,j,k}\)表示\(1...i\)剩余匹配入度为\(j\),出度为\(k\)的最小花费..
乱转移0.0..

C. Black Widow

题意:听说黑寡妇试手枪还要验证方程..
就是题目所给的方程,每个数出现次数不超过2,每个括号内个数不超过2..

把每个括号当做一条边,那么每个点度数最多为2,也就是说这个图要不就是链,要不就是环..
那么分这两种情况dp就好了..

其中环的要仔细看看,选其中一个点为0搞一次,为1搞一次,加起来就是答案

Codeforces Round #374

E. Road to Home

题意:自己看,不好讲..

正解是分\(p\leq100\)和\(p>100\)来做的..
\(p\leq100\)时,可以结束的点就很少,\(p>100\)时,答案就不会很大..
按照这个就可以做了

这里提供一种比较神奇的方法 %%%lych_cys
设\(f_i\)为在第\(i\)个区间结束的最多次数,\(g_i\)为在第\(i\)个区间结束最左边的结束位置..
那么只要找之前的区间跳\(t\)能跳到当前区间,再找第一个不能跳到当前区间的就行了,这样是均摊\(O(n)\)的
只是要对前面的取\(min\)不然会炸..

Codeforces Round #375

E. One-Way Reform

题意:\(n\)个点\(m\)条边的无向图,给边定向,使得有最多的点入度等于出度

把所有奇数度数的点合在一起,那么所有的点的度数都为偶数,就是一个很显然的欧拉回路了..

F. st-Spanning Tree

题意:\(n\)个点\(m\)条边的无向图,问是否存在一种生成树方案,使得\(s\)的度数不超过\(ds\),\(t\)的度数不超过\(dt\)

先把跟\(s\)、\(t\)无关的边加上去,然后缩点
1.\(s\)和\(t\)连一条边,那么剩余的每个点只要有\(s\)和\(t\)任意一个点连它就可以了
2.\(s\)和\(t\)不连边,那么要有一个点连\(s\)和\(t\),其余每个点找一个就行了..

codeforces泛做..的更多相关文章

  1. 学记笔记 $\times$ 巩固 · 期望泛做$Junior$

    最近泛做了期望的相关题目,大概\(Luogu\)上提供的比较简单的题都做了吧\(233\) 好吧其实是好几天之前做的了,不过因为太颓废一直没有整理-- \(Task1\) 期望的定义 在概率论和统计学 ...

  2. Codeforces Training S03E01泛做

    http://codeforces.com/gym/101078 和ysy.方老师一起打的virtual 打的不是很好...下面按过题顺序放一下过的题的题(dai)解(ma). A 给两个1~n的排列 ...

  3. codeforces / project Euler 泛做

    目录 PE 15 PE 76 PE 90 PE 577 PE 97 PE 364(坑) 待做 发现这个题库,很有意思,趁着还没有学习微积分,看不了书,赶快从头开始刷,所以都是一些简单的题目,即时简单, ...

  4. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  5. codeforces选做

    收录了最近本人完成的一部分codeforces习题,不定期更新 codeforces 1132E Knapsack 注意到如果只使用某一种物品,那么这八种物品可以达到的最小相同重量为\(840\) 故 ...

  6. HAOI2015 泛做

    T1 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的 ...

  7. LCT裸题泛做

    ①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...

  8. 基尔霍夫矩阵题目泛做(AD第二轮)

    题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. #include < ...

  9. 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做

    题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...

随机推荐

  1. yii2 伪静态配置

    原文地址: http://gblz.net/2015/242.html https://segmentfault.com/q/1010000003804408

  2. DataTable数据检索的性能分析(转寒江独钓)

    我们知道在.NET平台上有很多种数据存储,检索解决方案-ADO.NET Entity Framework,ASP.NET Dynamic Data,XML, NHibernate,LINQ to SQ ...

  3. 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码

    Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...

  4. 使用http.sys,让delphi 的多层服务飞起来

    核心提示:一直以来,delphi 的网络通讯层都是以indy 为主,虽然indy 的功能非常多,涉及到网络服务的各个方面,但是对于大多数多层服务来说,就是需要一个快速.稳定.高效的传输层.Delphi ...

  5. HDU 3622 Bomb Game

    Description \(n\) 个炸弹,每个炸弹有两个放置点,可以任选一个,问你最大的半径是多少. Sol 二分+2-SAT+Tarjan. 首先二分一下答案.然后就成了一个2-SAT问题. 建模 ...

  6. 【Docker】Docker主机为什么ip nets 查不到网络空间

    创建Docker容器后本来应该有新的命名空间(如果有独立网络的话),那么可以通过 ip netns 命令查看到命名空间,但是实际上却看不到. 查过资料才发现,ip netns 只能查看到 /var/r ...

  7. Linq查询表达式

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

  8. python smtplib email

    监控系统需要触发报警邮件, 简单笔记一下的用到的库. smtplib class smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) 返 ...

  9. HDU 4113 Construct the Great Wall(插头dp)

    好久没做插头dp的样子,一开始以为这题是插头,状压,插头,状压,插头,状压,插头,状压,无限对又错. 昨天看到的这题. 百度之后发现没有人发题解,hust也没,hdu也没discuss...在acm- ...

  10. VB中复制-粘贴-剪切键实现

    If Me.ActiveControl.GetType.BaseType.ToString = "System.Windows.Forms.TextBoxBase" Then Wi ...