第一题:

题目大意:给出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,两种情况取权值小的那个更新答案即可。算是比较简单的题吧。

最新文章

  1. Linux 利用Google Authenticator实现ssh登录双因素认证
  2. (转) java定时器的几种用法
  3. owin建控制台应用程序步骤
  4. 51nod 1076强连通
  5. gnuplot conditional plotting: plot col A:col B if col C == x
  6. LeetCode:Longest Palindromic Substring 最长回文子串
  7. C# testJsonAsXMLNodeAttribute - XML&amp; json &amp; Collections - XmlNode, XmlElement, XmlAttribute,Dictionary,List
  8. C#使用oledb方式将excel数据导入到datagridview后数据被截断为 255 个字符
  9. java中List的用法
  10. CJOJ 2255 【NOIP2016】组合数问题 / Luogu 2822 组合数问题 (递推)
  11. C/C++调用Golang 一
  12. Centos7找不到ifconfig和netstat命令
  13. 【Jenkins】Jenkins安装修改默认路径和端口的方法
  14. (记忆化搜索)数塔 (zznu 1271)
  15. Dist
  16. ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建
  17. 【微信小程序】下拉刷新真机测试无效
  18. 当ORACLE归档日志满后如何正确删除归档日志
  19. scala递归实现换零钱算法
  20. 复习前面一个月的学习C#感觉道路好艰难啊

热门文章

  1. MongoDB学习 (六):查询
  2. 僵尸进程学习 &amp; 进程状态列表 &amp; Linux信号学习
  3. iOS开发之在Xcode代码中插入类似QQ的表情
  4. 解决淘宝sui插件后退bug
  5. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)
  6. jQuery中其他
  7. matlab cross 3*1 向量叉乘
  8. ResponseUtil反射制造唯一结果
  9. 如何用腾讯云打造一款微视频APP
  10. js实现页面跳转