二模11day2解题报告
T1.修改文章(amend)
给出n个单词和一个长度为m的字符串,求改动多少个字符才能使字符串全由单词组成。
要说这道题还真的坑很坑超坑非常坑无敌坑……不过还是先想到了动规。毕竟要修改的前提是要组成的出来。所以转了一下变成用单词来拼凑字符串。
Std的方法(为何70分?):f[k1][k2][k3][k4]表示k1k2k3k4可由现有单词经过几步转化而来。其中k1k2k3k4取值从0~27(原来是-1~26,我改了一下,因为c++数组下标不能为负),0表示该位不存在,1表示是任意字母,其他表示A~Z。很明显,如果是原输入单词,则f[k1][k2][k3][k4]=0,同理f[1][k2][k3][k4]=0。但是进行后三位时要判断该位是否存在,然后按组合来赋0。
那么不是原输入单词呢?首先位数不一样肯定转不了。可以递归来求。每次从现有位数中去掉一位,看看这样转移加一步是否更优。(复杂到难以描述反正代码量达到2500B)同时一定要记忆化否则。。。boom。。。
这只是第一步,现在用g[i]表示处理到第i位的最优解,则g[i]=min(g[i-4]+f[a[i-3]][a[i-2]][a[i-1]][a[i]],g[i-3]+f[a[i-2]][a[i-1]][a[i]][0],g[i-2]+f[a[i-1]][a[i]][0][0],g[i-1]+f[a[i]][0][0][0])
但是g[1]g[2]g[3]g[4]是要初始化的。
还有yyl大神的方法完美解决了这个问题,只要把单词长度也作为数组的一维,变成5维,就可以代替-1的作用从而更简单。而且采用的是纯递归的方法,代码量急速下降而且不易出错。
T2.智力大冲浪(riddle)
这题以前水过了,给出初始的前m和n个小游戏以及扣的钱,每个游戏在规定的时间内完成否则失效。求最大奖励。
贪心,先按扣得钱多到少排序,然后在时限内尽量向后安排。然后算一下扣多少钱就好了。
T3.电梯(lift)
有一台电梯,n层楼,每层楼一个数字ki,每层楼只能选择上或下。求A到B的最小按键数
Bfs水题。易证,最优解每层楼最多走一次,然后就从A开始扩展,直到到B或队列为空。
二模11day2解题报告的更多相关文章
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模14day1解题报告
注:Index数☞由4,7组成的十进制数. T1.全排列(permutation) 求n个数的第k个排列中,有多少个Index位置上是Index数. 由于k的范围比较小,n的范围比较大(都是109), ...
- 二模12day2解题报告
T1.笨笨玩糖果(sugar) 有n颗糖,两个人轮流取质数颗糖,先取不了的(0或1)为输,求先手能否必胜,能,输出最少几步肯定能赢:不能,输出-1. 一开始天真的写了一个dp,f[i]表示i颗糖最少取 ...
- 二模01day1解题报告
T1.音量调节(changingsounds) 有n个物品的背包(有点不一样,每个物品必须取),给出初始价值,物品价值可正可负(就是两种选择嘛),求可能的最大价值,不可能(<0或>maxs ...
- 二模15day1解题报告
T1.合并序列(minval) 给出长为 n的AB两个序列求两两相加中最小的n个. 据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[ ...
- 二模14day2解题报告
T1.砍树(cuttree) 给出n棵树,要锯下m米木材,现在有一个高度h,h以上所有木头都砍下来,求满足m米的最小h 很简单的二分答案判断可行性. T2.快速求和(quicksum) 给出数字串s, ...
- 二模12day1解题报告
T1.笨笨与电影票(ticket) 有n个1和m个0,求每个数前1的个数都大于等于0的个数的排列数. 非常坑的一道题,推导过程很烦.首先求出所有排列数是 C(n+m,m),然后算不合法的个数. 假设存 ...
- 二模02day1解题报告
T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...
- 二模07day1解题报告
T1.种树(tree) 有n棵树,各有高度,要求每棵树的高度都小于它到其他树的距离(可能种一起).求砍掉的总高度是多少. Ok,那么可以想到,只要满足每棵树和最近的树满足条件就可以保证和其他树满足了. ...
随机推荐
- jquery .filter()过滤器
述: 筛选元素集合中匹配表达式 或 通过传递函数测试的 那些元素集合. .filter( selector ) selector 类型: Selector 一个用于匹配 ...
- 原生JavaScript实现的addclass,removeclass,hasclass,toggleclass,getbyclass
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 一. Logback与p6spy
一. LogBack配置 配置pom.xml <dependency> <groupId>org.slf4j</groupId> <artifactId> ...
- Shuffle相关分析
Shuffle描述是一个过程,表现出的是多对多的依赖关系.Shuffle是连接map阶段和Reduce阶段的纽带,每个Reduce Task都会从Map Task产生的数据里读取其中的一片数据.Shu ...
- POJ 3254 Corn Fields(状态压缩DP)
题目大意:给出一个M*N的矩阵,元素为0表示这个地方不能种玉米,为1表示这个地方能种玉米,现在规定所种的玉米不能相邻,即每行或者没列不能有相邻的玉米,问一共有多少种种植方法. 举个例子: 2 3 1 ...
- Axis2/c 知识点
官网文档: http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html 从文档中可以总结出: 1. Axis2/C是一个用C语言实现的We ...
- Gerrit清单库配置(转载)
From:http://fatalove.iteye.com/blog/1340334 gerrit清单库是用来配合repo使用的.清单库中列出了gerrit服务器上的其他版本库. 客户端通过repo ...
- EF中使用SQL语句或存储过程
EF中使用SQL语句或存储过程 1.无参数查询var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoe ...
- inno setup 在卸载时如果想保留文件 使用uninsneveruninstall
一般来说,inno只卸载你安装的文件,自动生成如Thumb.db(缩略图)等文件,卸载程序是不会删除这些的,此时你希望整个安装目录删除则可用你说的方法删除.若想保留某些文件,则必须在[File]段中拷 ...
- (medium)LeetCode 230.Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...