第一题:

题目大意:给出n种物品和每种物品的件数,求拿k件的方案数。N<=30

解题过程:

1.一开始总想着是组合数学的模型,结果怎么都想不出来。。然后写了个爆搜,数据很弱,只有1个点超时。

2.AC算法:F[i][j] 表示前i种取j件的方案数,枚举第i种物品分别取了0,1,2....p[i]件,累加方案数,即F[i][j]=sum(F[i-1][j-k])   0<=k<=min(j,p[i]);

思考:如果数据范围改的大一点,比如 K,N<=2000呢 ,求方案数mod p,那么原来的O(N*K^2)的算法是行不通的,考虑到每次的F[i][j]的值都和F[i-1]的和有关,那么在求出F[i][j]的时候就求一个前缀和,sum[i][j]表示sum(F[i][0....j])   那么方程就变成了 F[i][j]=sum[i-1][j]-sum[i-1][j-min(j,p[i])-1]. 优化到O(NK);

第二题:
潜水员为了潜水要使用特殊的装备。他有一个带 2 种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?
例如:潜水员有 5 个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:
3 36 120
10 25 129
5 50 250
1 45 130
4 20 119
如果潜水员需要 5 升的氧和 60 升的氮则总重最小为 249 (1,2 或者 4,5 号气缸)。
你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。

解题过程:

1.这题就是一个01背包问题,只不过状态变成了3维,考虑到 配备氧气和氮气可以超过 需要的氧气和氮气,那么修改状态,F[k][i][j]表示前k个物品,氧气至少为i,氮气至少为j的最小重量,就是边界的处理有些麻烦。

2.看了下标程,用了更新的方法,即每次加入一个物品,就可以用F[i][j]去更新F[i+a[k]][j+b[k]],如果 i+a[k]  或者j+b[k] 超出了 边界,那么算到更新边界就好。写起来也比较简单。

第三题:

题目大意:给出无向图N点M边,求出s到t的一条路径,使得 去掉最大边权值之后 的边权值和最小。求 最小权值和。N<=200,M<=300

解题过程:

1.看到那么小的数据范围,果断枚举最大边,然后分别以s和t 为起点做dijkstra,然后有2种可能,设最大边的两端点为x,y, 路径要么是s->x->y->t,要么是s->y->x->t,两种情况取权值小的那个更新答案即可。算是比较简单的题吧。

一模 (2) day2的更多相关文章

  1. 一模 (1) day2

    第一题:(水题) 题目大意:就是给出扫雷的图,然后统计每个九宫格的雷的个数. 解题过程: 1.好久没做这样的水题了.直接模拟水过.. 第二题: 题目大意:给出一个长度小于1000的数k,要求一个尽可能 ...

  2. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  3. 一模 (4) day2

    第一题: 题目大意:二进制数 n mod m 的结果是多少?  n 的长度(二进制数的位数)<=200 000:  m 的长度(二进制数的位数)<=20. 解题过程: 1.我的算法是直接高 ...

  4. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  5. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

  6. 二模 (13)day2

    第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...

  7. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  8. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  9. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  10. 二模 (11) day2

    第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...

随机推荐

  1. golang 定时器

    上网查了下相关资料,基本上都介绍的是github.com\robfig\cron这个包来执行定时任务,试了下确实可以执行.但是此包下没有删 除任务的方法,只有暂停的方法(Stop),若要停止之前的任务 ...

  2. Linux定时任务Crontab详解_定时备份

    文章来源:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Lin ...

  3. iOS开发 UIPanGestureRecognizer手势抽象类

    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@sel ...

  4. commonJS — 全局操作(for Window)

    for Window github: https://github.com/laixiangran/commonJS/blob/master/src/forWindow.js 代码 /** * Cre ...

  5. 在滚动列表中实现视频的播放(ListView & RecyclerView)

    英文原文:Implementing video playback in a scrolled list (ListView & RecyclerView) 本文将讲解如何在列表中实现视频播放. ...

  6. qq 换密保方法 只要有密保就好换手机

    特别提醒:必须先绑定手机再做其它操作!!否则有几率冻结更换密保手机号后审核时间2-12小时,请您确定审核通过后再使用(本链接所有号码不需要挂七天常用IP即可绑定手机后改密)电脑换绑定手机方法:复制账号 ...

  7. 项目解析- JspLibrary - part2

    banner.jsp 验证用户是否登录 <%String manager=(String)session.getAttribute("manager"); //验证用户是否登 ...

  8. java 内部类3(匿名内部类)

    匿名内部类: 1.没有类名的类就叫匿名内部类 2.好处:简化书写. 3.使用前提:必须有继承或实现关系......不要想着你自己没有钱你没可是你爸有 4.一般用于于实参.(重点) class Oute ...

  9. Eclipse全面提速小技巧

    转自:http://rongmayisheng.com/post/eclipse%E5%85%A8%E9%9D%A2%E6%8F%90%E9%80%9F 欢迎关注我的社交账号: 博客园地址: http ...

  10. 解决requestAnimationFrame的兼容问题

    写法: window.requestAnimFrame = (function () { return window.requestAnimationFrame || window.webkitReq ...