第一题:

题目大意:给出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. TortoiseSvn

    TortoiseSVN 是svn版本控制系统的一个免费开源客户端,它是svn版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windows Explorer,使用 ...

  2. hdu 3117 Fibonacci Numbers

    这道题其实也是水题来的,求Fibonacci数的前4位和后4位,在n==40这里分界开.后4位不难求,因为n达到了10^18的规模,所以只能用矩阵快速幂来求了,但在输出后4位的时候一定要注意前导0的处 ...

  3. PSR-0的规范。

  4. Linux 系统时间查看 及 时区修改(自动同步时间)

    1:使用date命令查看时区 [root@db-server ~]# date -R   Sun, 11 Jan 2015 07:10:28 -0800   [root@db-server ~]#   ...

  5. RT-thread学习笔记(一)

    我的基础:能在现有C程序下做些修改,不会移植,不会写驱动,很难从头到尾自己写程序. RT-thread基础:之前看了一点rtthread_manual.zh.pdf(即RT-thread使用手册),发 ...

  6. phalcon count统计

    单表count: //How many robots are there? $number = Robots::count(); echo "There are ", $numbe ...

  7. PHP 获取服务器详细信息【转】

    碰到此问题,做下记录 获取系统类型及版本号:    php_uname()                                   (例:Windows NT COMPUTER 5.1 b ...

  8. sccm部署win7原版系统系统盘为D盘

    1. 系统部署完毕之后是这样的

  9. ios CoreBluetooth 警告 is being dealloc'ed while pending connection

    ios CoreBluetooth 警告 is being dealloc'ed while pending connection CoreBluetooth[WARNING] <CBPerip ...

  10. 能源项目xml文件标签释义--CommonsMultipartResolver

    <!-- 文件上传表单的视图解析器 --><bean id="multipartResolver" class="org.springframework ...