二模01day1解题报告
T1.音量调节(changingsounds)
有n个物品的背包(有点不一样,每个物品必须取),给出初始价值,物品价值可正可负(就是两种选择嘛),求可能的最大价值,不可能(<0或>maxsound)输出-1。
很简单的,f[i][j]表示的是到第i首歌时音量为j是否可能。
f[i][j]=f[i-1][j-c[i]]||f[i-1][j+c[i]] (j-c[i]>=0,j+c[i]<=maxsound)
不贴代码啦。
T2.旅行(journey)
有n*m的矩阵由’.’和’X’组成,X为障碍物’.’为可以通行。求地图上任意两点间的曼哈顿距离之和/空格数的平方 (曼哈顿距离两点对调算不同的)。
一开始想不到怎么解,于是就想拿个50分吧。于是就坑了好久想一个公式啊。经过一番苦解终于解出了n*m的矩阵左上角的点到各点的距离之和为
(哈哈哈哈哈)。然而不甘心的我又加了一个四重循环坑坑看后5个点。。。不过最终还是50分
那么怎么AC呢?

可以发现,如果有这样的点阵,那么蓝点到红点都必须绕过一个X,也就是说蓝点到红点的曼哈顿距离比原来多了二,但是到黄点就不用了。
那么如果要解决X的问题,就可以计算出需要加2的点就可以了。可以用x[],y[]数组来记录每列和每行的X(最早的)位置,然后枚举,向两边寻找更小的x[],y[],再用乘法计算增加的数量。
我们可以先假设X是可穿过的,那么就有了

这样子的一段处理代码,可以解决无X的情况。
再配合上面的计算方法就可以解决含X的计算了。
这个可以有代码吧。。。

这一段是处理X的(列上的,行上的自行脑补,稍稍改动一下就好了)
T3.舞蹈课(dancinglessons)
有n个人,每个人有不同价值,每次取相邻的且价值差最小的男女出列,求总数和出列顺序。
打了一个煞笔模拟,每次直接枚举计算最小差然后输出。(总对数直接输出男女中较小的总数)
本来呢,我是想到优先队列来着,但是偏偏想着怎么把不存在的节点取出来而没想到我已经标记过了。。。。QAQ我的天。。。。
那么正解就是优先队列,把每对的差值都算出来存到优先队列里,(要改成小根堆),然后每次取堆顶元素,查看是否标记(直到都没被标记为止),然后在标记,输出,找到左边和右边第一个没被标记的人,查看是否异性,是则入队。如此循环直到队列为空。
二模01day1解题报告的更多相关文章
- 二模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颗糖最少取 ...
- 二模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,那么可以想到,只要满足每棵树和最近的树满足条件就可以保证和其他树满足了. ...
- 二模07day2解题报告
T1.采药(medic) 有n个草药,要在m的时间内获得最大价值. 乍一看像是01背包,然而数据只能过50分. 考虑数据范围,t<=10,w<=10,所以只有121种草药.考虑多重背包的二 ...
随机推荐
- 批处理与python代码混合编程的实现方法
批处理可以很方便地和其它各种语言混合编程,除了好玩,还有相当的实用价值, 比如windows版的ruby gem包管理器就是运用了批处理和ruby的混合编写, bathome出品的命令工具包管理器bc ...
- 解决iOS8安装企业版无反应问题
iOS7可以下载没有任何问题,iOS8发现挂在官网上的企业版的app点击了提示是否安装应用程序,但是确认以后没有反应,找了很久,都没有发现问题.后来查看了的device console发现安装的时候出 ...
- 《Java中的包机制》
/* 包的机制:(1) */ package lee; public class PackageTest { public void Test(int num) { System.out.printl ...
- Divisors
计算小于n的数中,约数个数最多的数,若有多个最输出最小的一个数. http://hihocoder.com/problemset/problem/1187 对于100有 60 = 2 * 2 * 3 ...
- 2-legged oauth & 3-legged oauth
3-legged oauth resource owner, client, server. resource owner 给client访问权限去访问resource owner在server上的r ...
- Flume 实战(1) -- 初体验
前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...
- php wampserver 80 端口无法开启的解决方法
下载Microsoft Visual C++ 2005 Redistributable Package x86 和 x64(vc_redist.x86.exe/vc_redist.x64.exe) 安 ...
- Safari 前端开发调试 iOS 完美解决方案
转http://www.2cto.com/kf/201403/283404.html afari 前端开发调试 iOS 完美解决方案 2014-03-05 0个评论 来源:Safari ...
- // 开始无限播放 ViewPager
public class MainActivity extends Activity { private ViewPager vp; private Handler handler = new ...
- libvirt
http://libvirt.org/index.html libvirt supports: The KVM/QEMU Linux hypervisor The Xen hypervisor on ...