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解题报告的更多相关文章

  1. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  2. 二模14day1解题报告

    注:Index数☞由4,7组成的十进制数. T1.全排列(permutation) 求n个数的第k个排列中,有多少个Index位置上是Index数. 由于k的范围比较小,n的范围比较大(都是109), ...

  3. 二模12day2解题报告

    T1.笨笨玩糖果(sugar) 有n颗糖,两个人轮流取质数颗糖,先取不了的(0或1)为输,求先手能否必胜,能,输出最少几步肯定能赢:不能,输出-1. 一开始天真的写了一个dp,f[i]表示i颗糖最少取 ...

  4. 二模15day1解题报告

    T1.合并序列(minval) 给出长为 n的AB两个序列求两两相加中最小的n个. 据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[ ...

  5. 二模14day2解题报告

    T1.砍树(cuttree) 给出n棵树,要锯下m米木材,现在有一个高度h,h以上所有木头都砍下来,求满足m米的最小h 很简单的二分答案判断可行性. T2.快速求和(quicksum) 给出数字串s, ...

  6. 二模12day1解题报告

    T1.笨笨与电影票(ticket) 有n个1和m个0,求每个数前1的个数都大于等于0的个数的排列数. 非常坑的一道题,推导过程很烦.首先求出所有排列数是 C(n+m,m),然后算不合法的个数. 假设存 ...

  7. 二模02day1解题报告

    T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...

  8. 二模07day1解题报告

    T1.种树(tree) 有n棵树,各有高度,要求每棵树的高度都小于它到其他树的距离(可能种一起).求砍掉的总高度是多少. Ok,那么可以想到,只要满足每棵树和最近的树满足条件就可以保证和其他树满足了. ...

  9. 二模07day2解题报告

    T1.采药(medic) 有n个草药,要在m的时间内获得最大价值. 乍一看像是01背包,然而数据只能过50分. 考虑数据范围,t<=10,w<=10,所以只有121种草药.考虑多重背包的二 ...

随机推荐

  1. SharePoint 2016 Beta 2 安装体验

    博客地址:http://blog.csdn.net/FoxDave 最近忙碌了一段时间,2016正式版快要发布了,想尽快熟悉熟悉.2016不再提供免费版Foundation的支持,只有Server版本 ...

  2. 复制过来的东西也不靠谱,微信公众号第三方平台的API

    API:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&veri ...

  3. sqoop将关系型数据库的表导入hive中

    1.sqoop 将关系型数据库的数据导入hive的参数说明:

  4. Word或者Excel中怎么把 "空格" 替换成 "换行 "

    word中ctrl+h打开替换,将" "替换为^pexcel替换成alt+小键盘区的10

  5. Ubuntu安装gfortran

    命令行运行 sudo apt-get install gfortran

  6. js中获得指定范围的n个不重复的随机数

    function getarray(arr,num){ //复制数组,不能直接在原数组上修改 var temparr=new Array(); //遍历原数组 for(var i in arr){ / ...

  7. POJ 2533 动态规划入门 (LIS)

    Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 42914 Accepte ...

  8. iwork 09 可以用的序列号

    E4RJ-YKHP-9ER4-WK9Y-H4UM-5S2G9MU-9U9J-KN4M-4PAE-DYNA-5S2EGMU-3PKP-NN9G-3JW4-3RAD-5S2

  9. JDBC连接数据库操作

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  10. 单例设计模式getInstance()

    对象的实例化方法,也是比较多的,最常用的方法是直接使用new,而这是最普通的,如果要考虑到其它的需要,如单实例模式,层次间调用等等.   直接使用new就不可以实现好的设计好,这时候需要使用间接使用n ...