电路布线问题
来源:互联网 发布:淘宝主营占比在哪里看 编辑:程序博客网 时间:2024/04/25 13:58
作电路板时,将n条连线分布到若干绝缘层上。在同一层的连线不相交。电路布线问题就是要确定将哪些连线安排到第一层上,使该层上有尽可能多的连线。
可以考虑最长连续递增子序列的方法求出结果
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<queue>using namespace std;#define M 101int n,a[M],dp[M];int ans;int main(){ int i,j; scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d",&a[i]); memset(dp,0,sizeof(dp)); ans=0; dp[1]=1; for (i=2;i<=n;i++) { dp[i]=1; for (j=1;j<i;j++) if (a[i]>a[j]) dp[i]=max(dp[i],dp[j]+1); ans=max(ans,dp[i]); // printf("%d %d\n",i,dp[i]); } printf("%d\n",ans); return 0;}/*108 7 4 2 5 1 9 3 10 6结果:461 5 4 3 2 6结果:3*/
#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>#include<queue>using namespace std;#define M 101int n,val[M],dp[M][M],ans;int main(){ int i,j; scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d",&val[i]); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) if (j>=val[i]) dp[i][j]=max(dp[i-1][j],dp[i-1][val[i]-1]+1);// else// dp[i][j]=dp[i-1][j]; } printf("%d\n",dp[n][n]); return 0;}/*108 7 4 2 5 1 9 3 10 661 5 4 3 2 6*/
0 0
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 电路布线问题
- 【动态规划】电路布线问题
- 动态规划-电路布线问题
- 电路布线
- 电路布线
- 电路布线
- DP动态规划-电路布线问题
- 电路布线中要注意的一些问题
- 队列的应用—电路布线最优解问题
- 0017算法笔记——【动态规划】电路布线问题
- 算法设计--电路布线问题(分支限界法求解)
- AD15 一个工程多原理图多PCB 分别导入
- python/pandas数据分析(十三)-数据清理、转换、合并,重塑
- 常用的DOS运行命令
- clion配置cmake添加boost库
- 课程设计2 歌手大赛计分系统
- 电路布线问题
- PHP开发环境搭建
- 在Windows服务器的命令窗口中用ftp方式与使用了File Zilla Sever软件共享了文件的另一个Windows服务器进行文件传输
- 命令模式代码
- python3.5 django 文档相关动作错误及解决办法
- Eclipse调试方法
- CSS单位
- http协议之response响应详解
- Bootstrap入门需掌握的知识点(二)