前面说点什么..

为了完成日常积累,傻逼呵呵的我决定来一发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. 转-ArcGIS Engine许可初始化

    关于初始化Engine许可的,其实原理都很简单,大家一般都没有问题,但又往往会因为不够细心加上Engine的“小脾气”,让不少程序员都要在这里犯错. 以Engine9.2为例,应用程序是强制初始化许可 ...

  2. JS 原型的妙用

    原型是JS的一个重要的特征,通过它可以实现类和实例直接的继承关系. 1.原型来来实现数据备份 // 通过原型来来实现数据备份 function p(x){ this.x = x; } p.protot ...

  3. OpenGL Common Mistakes

    https://www.opengl.org/wiki/Common_Mistakes Do not use constructors/destructors to initialize/destro ...

  4. 浅谈MVC中路由

    引言 学习ASP.NET MVC 路由这一关是肯定必不可少的.这一节,我们就来简单介绍下MVC中的路由机制.简单的路由机制相信大家都已了解,这一节主要介绍路由中很少使用的部分. 使用静态URL片段 在 ...

  5. iOS开发网络篇—数据缓存

      iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...

  6. Html限制input输入框只能输入数字

    限制输入框只能输入数字, onafterpaste防止用户从其它地方copy内容粘贴到输入框: <input type="text" onkeyup="this.v ...

  7. 大熊君大话NodeJS之------MongoDB模块(额外篇)

    一,开篇分析 这篇属于扩展知识篇,因为在下面的文章中会用到数据库操作,所以今天就来说说它(Mongodb模块). (1),简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为 ...

  8. ASP.NET 系统对象 Request(一)

    Request对象 用来获取客户端在请求一个页面或传送一个Form是提供的所有信息.它包括用户的HTTP变量.能够识别的浏览器.存储客户端的Cookie信息和请求地址等. Request对象是Syst ...

  9. JavaScript方法call、apply、caller、callee、bind的使用详解及区别

    一.call 方法 调用一个对象的一个方法,以另一个对象替换当前对象(其实就是更改对象的内部指针,即改变对象的this指向的内容). 即  “某个方法”当做“指定的某个对象”的“方法”被执行. Js代 ...

  10. Linux常用系统管理命令(top、free、kill、df)

    top   -c    #任务管理器 free  -m    #查看内存使用情况 kill  -9   2312 (说明:强制杀死进程 kill  -9  pid ) df   -h    #查看磁盘 ...