A

=w=

B

计数题,枚举A、C,算B、D的个数,注意减去重复的

我当时是f[1][n]->f[2][n]->f[3][n]->f[4][n]递推的

C

题意:长为n的字符串仅由'2' '3'组成,有m次交换机会,每次交换相邻的两个位置,求最终可以有多少个"233"子串(n<=100,m<=50)

分析:dp

   首先明确的是,交换只可能交换相邻的2、3

   考虑最终的状态,肯定是一些2,在这些2中间有若干个3,这些2的相对位置和刚开始的字符串相同

   f[i][j][k]表示第i个2,所在新字符串位置是j,用了k次交换,带来的最大233串个数

   那么很明显f[i][j][k]=max(f[i-1][j'][k]+(j-j'>=3)) (j==p[i])

        f[i][j][k]=max(f[i-1][j'][k-abs(p[i]-j)]+(j-j'>=3)) (j!=p[i])

   这样复杂度是O(n^3 * m)的

   其实仔细分析,对于上一个2,我们需要记录的并不是上一个2和这一个2之间3的确切个数,我们只关心上一个2和这一个2之间的3的个数是0、1或者大于等于2 这三种情况

   因为233、2333、23333对答案的贡献是一样的

   那么这样就应该有O(n^2 * m)的做法

   考虑将所有2单独挑出来,将所有3单独挑出来,那么最后的结果就是2和3的归并

   f[i][j][k][0..2]表示用了i个2,用了j个3,用了k次交换,对应状态是0、1、2情况下最多233子串个数

   t=0表示此时最后一个2后面有足够的3(>=2)

   t=1表示此时最后一个2后面没有3

   t=2表示此时最后一个2后面有1个3

   通过这个进行转移

D

待补

Bestcoder #92的更多相关文章

  1. BestCoder Round #92 比赛记录

    上午考完试后看到了晚上的BestCoder比赛,全机房都来参加 感觉压力好大啊QAQ,要被虐了. 7:00 比赛开始了,迅速点进了T1 大呼这好水啊!告诉了同桌怎么看中文题面 然后就开始码码码,4分1 ...

  2. BestCoder Round #92 1001 Skip the Class —— 字典树 or map容器

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1001 题解: 1.trie树 关 ...

  3. BestCoder Round #92 1002 Count the Sheep —— 枚举+技巧

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1002 题解: 做题的时候只是想到 ...

  4. BestCoder Round #92 (hdu_6015 6016)

    比赛链接 A题主要是map的使用,比赛的时候问了下队友,下次要记住了 #include<bits/stdc++.h> using namespace std; typedef long l ...

  5. BestCoder Round #92

    这里是逢比赛必挂的智障选手ysf…… 不知道是因为自己菜还是心态不好……也许是后者吧,毕竟每次打比赛的时候都会很着急.lrd说我打比赛的功利性太强,想想确实是这样. 昨天打完之后自觉身败名裂没敢写出来 ...

  6. HDU_6016_(Bestcoder round #92 1002)_(dfs)(暴力)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6016 题意:给定男羊和女羊的朋友关系,即给定一个图,问从任意一只羊开始连续数四只不相同的羊的方法数. ...

  7. BestCoder Round #92 (hdu 6015 6016)

    比赛链接 A题主要是map的使用,比赛的时候问了下队友,下次要记住了 #include<bits/stdc++.h> using namespace std; typedef long l ...

  8. [BestCoder Round #3] hdu 4908 BestCoder Sequence (计数)

    BestCoder Sequence Problem Description Mr Potato is a coder. Mr Potato is the BestCoder. One night, ...

  9. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

随机推荐

  1. EditText(8)EditText中drawableRight图片的点击事件

    参考: http://stackoverflow.com/questions/3554377/handling-click-events-on-a-drawable-within-an-edittex ...

  2. 全面学习ORACLE Scheduler特性(8)Application抛出的Events

    4.2 Application抛出的Events 首先要说明,这里所说的Application是个代词,即可以表示ORACLE数据库之外的应用程序,也可以是ORACLE数据库中的PROCEDURE等对 ...

  3. TFS修改了工作区

    计算机修改名字后,更换了TFS工作区,但原工作区的有些文件忘记签入: 解决方案: 删除原工作区即可,实现:到TFS工作区 - “管理工作区”,选中“显示远程工作区”,找到原工作区,删除即可.

  4. 动态代理在WEB与JDBC开发中的应用

    WEB案例 目前有一个2005年开始,基于Struts1的Web项目A,其验证部分依赖于主站的SSO(单点登录).在请求站点A的时候,用户会被强制带去做SSO验证,通过身份验证后后,主站会自动地把请求 ...

  5. Angular——内置服务

    $location <!DOCTYPE html> <html lang="en" ng-app="App"> <head> ...

  6. canvas一周一练 -- canvas绘制饼图(3)

    运行效果: <!DOCTYPE html> <html> <head> </head> <body> <canvas id=" ...

  7. (转)Hibernate框架基础——映射普通属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52739871 持久化对象与OID 对持久化对象的要求 提供一个无参的构造器.使Hibernat ...

  8. js让页面逐渐变透明,直到消失

    在gitHub闲逛的时候,无意间发现了些好玩的代码,一个歪果仁写的,这里我做了些修改和优化,gitHub链接已经忘了,是一段恶搞的js代码,假如你的顾客或者老板拖欠你工资,那你就可以让项目页面在浏览器 ...

  9. vue组件---动态组件&异步组件

    (1)在动态组件上使用keep-alive 之前曾经在一个多标签的界面中使用 is 特性来切换不同的组件.接下来简单回顾下 <component>元素是vue 里面的一个内置组件.在里面使 ...

  10. BZOJ 2223: [Coci 2009]PATULJCI 主席树

    Code: #include<bits/stdc++.h> #define maxn 300001 #define mid ((l+r)>>1) using namespace ...