162:Post Office

解题思路

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,m,a[],f[][],mi[][],i,j;
  4. int main()
  5. {
  6. cin>>n>>m;
  7. for(i=;i<=n;i++)cin>>a[i];
  8. for(i=;i<=n;i++)
  9. for(j=;j<=m;j++)
  10. f[i][j]=;//赋为最大值
  11. for(i=;i<=n;i++)
  12. {
  13. for(j=i+;j<=n;j++) mi[i][j]=mi[i][j-]+a[j]-a[(i+j)/];//从第i个村庄到第j个村庄中只建一个邮局的总路径长度
  14. f[i][]=mi[][i];//转移到f
  15. }
  16. for(i=;i<=n;i++)
  17. for(j=;j<=m;j++)
  18. for(int k=j-;k<i;k++)
  19. f[i][j]=min(f[i][j],f[k][j-]+mi[k+][i]);
  20. cout<<f[n][m]<<endl;
  21. return ;
  22. }

1759:最长上升子序列

  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. const int N = ;
  5. int a[N],f[N];
  6.  
  7. int main()
  8. {
  9. int n;
  10. cin>>n;
  11. for(int i=;i<n;i++)cin>>a[i];
  12. for(int i=;i<n;i++)f[i]=;
  13. for(int i=;i<n;i++)
  14. {
  15. for(int j=;j<i;j++)
  16. {
  17. if(a[j]<a[i])f[i]=max(f[i],f[j]+);
  18. }
  19. }
  20. int ans = ;
  21. for(int i=;i<n;i++)ans = max(ans,f[i]);
  22. cout<<ans<<endl;
  23. return ;
  24. }

1768:最大子矩阵

讲解链接

2000:最长公共子上升序列

讲解链接:原理解释 题目解答

  1. /*
  2. 1. 这题不支持Special Judge...so设置状态转移方程的时候 要设置成LCIS是以第一个数组的第j个元素结尾的 而不能是第二个数组 - - 就是这么坑0-0
  3. 2. 记录LCIS中的元素并输出 dp的时候对结构体dp 结构体中vector记录LCIS中元素。
  4. */
  5. #include<iostream>
  6. #include<vector>
  7. using namespace std;
  8.  
  9. struct Node
  10. {
  11. int val = ;
  12. vector<int>v;
  13. };
  14.  
  15. int main() {
  16. int a[], b[];
  17. Node dp[];
  18. int m, n;
  19. cin >> m;
  20. for (int i = ; i <= m; i++)
  21. cin >> a[i];
  22. cin >> n;
  23. for (int i = ; i <= n; i++)
  24. cin >> b[i];
  25. for (int i = ; i <= n; i++)
  26. {
  27. Node Max;
  28. for (int j = ; j <= m; j++) {
  29. if (b[i] > a[j] && dp[j].val > Max.val)
  30. Max = dp[j];
  31. if (b[i] == a[j]) {
  32. dp[j].val = Max.val + ;
  33. dp[j].v = Max.v;
  34. dp[j].v.push_back(b[i]);
  35. }
  36. }
  37. }
  38. Node Max = dp[];
  39. for (int i = ; i <= m; i++) {
  40. if (dp[i].val > Max.val)
  41. Max = dp[i];
  42. }
  43. cout << Max.val << endl;
  44. for (int i = ; i < Max.v.size(); i++)
  45. cout << Max.v[i] << " ";
  46. cout << endl;
  47. return ;
  48. }

2985:数字组合

讲解链接

  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int n,t;
  8. int f[],a[];
  9. cin>>n>>t;
  10. for(int i=;i<=n;i++)cin>>a[i];
  11. f[]=;
  12. for(int i=;i<=n;i++)
  13. for(int j=t;j>=a[i];j--)
  14. f[j]+=f[j-a[i]];
  15. cout<<f[t]<<endl;
  16. return ;
  17. }

NOI-动规题目集锦的更多相关文章

  1. 2016.4.3NOI上较难的动规题目(仔细分析样例)--王老师讲课整理

    1.NOI 191:钉子和小球 总时间限制: 1000ms 内存限制:  65536kB 描述 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每 ...

  2. vijos1431[noip2007]守望者的逃离(背包动规)

    描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这 个荒岛施咒,这座岛很快就会 ...

  3. 区间型动规--石子归并(Pascal)

    题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使 ...

  4. 【noip 2009】 乌龟棋 记忆化搜索&动规

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  5. 洛谷 P2569[SCOI2010]股票交易(动规+单调队列)

    //只能写出裸的动规,为什么会有人能想到用单调队列优化Orz 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测 ...

  6. 2011 ACM-ICPC 成都赛区A题 Alice and Bob (博弈动规)

    题目大意: 有K堆石子,每堆有Ki个.两人的操作能够是:             1 从某一堆拿走一个 假设该堆在此之后没有石子了.就消失             2 合并两个堆        求是否 ...

  7. FJoi2017 1月20日模拟赛 恐狼后卫(口糊动规)

    Problem 1 恐狼后卫(wolf.cpp/c/pas) [题目描述] 著名卡牌游戏<石炉传说>中有一张随从牌:恐狼后卫.恐狼后卫的能力是使得相邻随从的攻击力提高. 现在有n张恐狼后卫 ...

  8. HDU 1159 Common Subsequence (动规+最长公共子序列)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. HDU-5693 D Game 动态规划 两次动规

    题目链接:https://cn.vjudge.net/problem/HDU-5693 题意 中文题 这个游戏是这样的,首先度度熊拥有一个公差集合{D},然后它依次写下N个数字排成一行.游戏规则很简单 ...

随机推荐

  1. element admin中使用nprogress实现页面加载进度条

    主要是知道是nprogress这个组件实现的就可以了,组件的使用方法可参考:https://blog.csdn.net/ltr15036900300/article/details/47321217 ...

  2. bundler-sfm windows下编译过程中出现的错误

    一.“sysdep1.h”文件缺失 错误提示: fatal error C1083: 无法打开包括文件: “sysdep1.h”: No such file or directory 这些作为这个软件 ...

  3. 隐马尔科夫模型(Hidden Markov Models) 系列之四

    转自:http://blog.csdn.net/eaglex/article/details/6430389 前向算法(Forward Algorithm) 一.如果计算一个可观察序列的概率?   1 ...

  4. docker的centos7安装与启动相关命令

    Docker 的概念 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容 ...

  5. VS2015秘钥激活

    点击软件菜单栏的"帮助",点击"注册产品",点击"使用产品密钥解锁",附送产品密钥: 专业版:HMGNV-WCYXV-X7G9W-YCX63 ...

  6. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  7. msyql error: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

    mysql> use mydb Reading table information for completion of table and column names You can turn o ...

  8. curl-7.21.2

    curl 源码编译 自己定义的库编译 https://blog.csdn.net/initiallht/article/details/92655025 静态库,debug,x86nmake /f M ...

  9. 清理Linux 磁盘空间

    1.执行   lsof | grep deleted发现有大量刚刚删除文件的进程存在,kill掉进程(或者重启进程)   OK 2.查看磁盘信息:df -lh 3.循环定位最大文件目录:du -h - ...

  10. Android: Error inflating class android.support.v4.view.ViewPager 问题的解决方法

    ViewPager是个很好很强大的控件,很多应用用它来实现很酷的效果,但是很多情况下在运行时会遇到Error inflating class android.support.v4.view.ViewP ...