[Codeforces Round #431]简要题解
来自FallDream的博客,未经允许, 请勿转载,谢谢。
好久没写cf题解了zzz
代码比较丑不贴了,cf上都可以看
Div2A.
给你一个长度为n(n<=100)的序列 判断是否可以分成奇数个长度是奇数,且第一个和最后一个都是奇数的子串
当时想都没想就交了个dp
发现实际上满足n是奇数,a1和an都是奇数即可。
Div2B
给n(n<=1000)个点,第i个点坐标(i,ai),问是否可以用两条平行线恰好穿过所有的点
有一条线肯定通过12,或者23或者13,枚举情况分别判断即可。
Div1A
将两个串合并的费用是所有字母在两边的个数的乘积之和,要求构造一个最小费用是n(<=100000)的串。
不同字母的费用分开计算,m个相同字母的费用是m(m-1)/2 贪心一下就好了。
Div1B
有n(<=100000)个点,第i个点在ti时间之后从x或者y轴的pi的位置开始向另一个轴正方向移动,两个点相撞会反弹,求每个点最终位置。
首先根据pi-ti不同分开处理
然后对于每个点求出有多少个pi-ti相同的,并且从另一个方向飞过来的点,同时求出有多少个pi-ti相同的,并且和他同一个轴的坐标比他大的点。
两种点都会让他反弹,根据哪种比较多判断最终飞的方向,可以用一个线段树查k大来获得最终位置。
Div1C
维护一个长度为n(<=100000)的序列,支持单点修改,查询区间所有权值最大位置-最小位置的和,m<=100000。
用set维护每种权值的出现位置,每个数和它的上个数都在区间内时会产生(距离)的贡献。
然后就变成了二维单点改,查询矩形和的问题,套树貌似空间不太够,cdq分治比较稳。
Div1D
题目比较复杂,可以自己看,不解释了。
可以看出这道题肯定是DP,因为一个图就等于一条边加上很多个“桥”,每个桥又由两个图组成,有重复的子问题。
用f[i][j]表示用i次操作获得一个流量是j的桥的方案数。
用g[i][j]表示用i此操作获得一个流量是j的图的方案数。
f[i][j] * f[k][l] 转移到 -> g[i+k+1][min(j,l)]
然后因为同构的关系同一个f[i][j]一起转移
从n个里选出k个,可以重复的方案数是C(n+k-1,n-1)
动态维护这个组合数,在转移的时候 枚举选择k个f[i][j],则g[i'][j']+=f[i'-k*i][j'-k*j] * C(f[i][j]+k-1,f[i][j]-1)
[Codeforces Round #431]简要题解的更多相关文章
- Codeforces Round#433 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了 突然想上点分 就打了一场Div1 没想到打到了rank5 一发上橙了,可还行. ...
- Codeforces Round#432 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. Div2A 小判断题 Div2B 小判断题,合法的条件是|AB|=|BC|且三点不共线 Div1A 类比二维.三维空间,可以猜测n太大的时候没 ...
- Codeforces Round #543 Div1题解(并不全)
Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...
- Codeforces Round #545 Div1 题解
Codeforces Round #545 Div1 题解 来写题解啦QwQ 本来想上红的,结果没做出D.... A. Skyscrapers CF1137A 题意 给定一个\(n*m\)的网格,每个 ...
- Codeforces Round #539 Div1 题解
Codeforces Round #539 Div1 题解 听说这场很适合上分QwQ 然而太晚了QaQ A. Sasha and a Bit of Relax 翻译 有一个长度为\(n\)的数组,问有 ...
- Educational Codeforces Round 64 部分题解
Educational Codeforces Round 64 部分题解 不更了不更了 CF1156D 0-1-Tree 有一棵树,边权都是0或1.定义点对\(x,y(x\neq y)\)合法当且仅当 ...
- Educational Codeforces Round 64部分题解
Educational Codeforces Round 64部分题解 A 题目大意:给定三角形(高等于低的等腰),正方形,圆,在满足其高,边长,半径最大(保证在上一个图形的内部)的前提下. 判断交点 ...
- 【题解】Comet OJ Round 70 简要题解
[题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...
- Codeforces Round div2 #541 题解
codeforces Round #541 abstract: I构造题可能代码简单证明很难 II拓扑排序 III并查集 启发式排序,带链表 IV dp 处理字符串递推问题 V 数据结构巧用:于二叉树 ...
随机推荐
- django BBS
https://github.com/triaquae/py_training/tree/master/OldboyBBS2 http://www.cnblogs.com/zhming26/p/592 ...
- Count on a tree
bzoj 2588: Spoj 10628. Count on a tree http://www.lydsy.com/JudgeOnline/problem.php?id=2588 Descrip ...
- Syabse数据库无法启动的解决方案
在探讨本问题之前,首先要为大家解释一下Syabse数据库本身.Syabse数据库应用和本身的架构相对而言都相对比较复杂,多数技术人员及公司对Sybase数据库底层结构和运行机制也处于并非完全了解的阶段 ...
- Vue filter介绍及详细使用
Vue filter介绍及其使用 VueJs 提供了强大的过滤器API,能够对数据进行各种过滤处理,返回需要的结果. Vue.js自带了一些默认过滤器例如: capitalize 首字母大写 uppe ...
- linux系统增加开机启动服务/应用
操作 在/etc/init.d下新建示例脚本文件(customize.sh),该脚本会启动zookeeper服务.内容如下: #!/bin/sh /usr/local/zookeeper-/bin/z ...
- ORA-12514:TNS:lisntener does not currently know of service requested in connect descriptor
在使用工具连接oracle库的时候出现了异常 根据理解初步估计是服务或者监听器没有启动 于是链接到数据库服务器进行查看 服务都已经开启,重启后链接依旧出现上述问题 使用lsnrctl status ...
- istio入门(04)istio的helloworld-部署构建
参考链接: https://zhuanlan.zhihu.com/p/27512075 安装Istio目前仅支持Kubernetes,在部署Istio之前需要先部署好Kubernetes集群并配置好k ...
- Linux下的Shell编程(1)最简单的例子
深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bi ...
- 【第二十篇】C#微信H5支付 非微信内浏览器H5支付 浏览器微信支付
微信开发者文档 微信H5支付官方文档 请阅读清楚 最起码把所有参数看一遍 这个地方也可以看看 微信案例 http://wxpay.wxutil.com/mch/pay/h5.v2.php,请在微 ...
- Android学习——移植tr069程序到Android平台
原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅 ...