当前位置: 首页 > news >正文

网站备案的坏处国内新闻最新

网站备案的坏处,国内新闻最新,网站建设中数据库,做网站记者好吗目录1、问题2、详细说明3、代码块 问题在一块电路板的上下两端分别有n个接线柱。根据电路设计&#xff0c;要求用导线 (i&#xff0c;π(i))&#xff0c;将上端接线柱 i 与下端接线柱 π(i) 相连&#xff0c;如图&#xff0c;其中 π(i)&#xff0c;1<i<n&#xff0c;是(…

目录
1、问题
2、详细说明
3、代码块

问题
在一块电路板的上下两端分别有n个接线柱。根据电路设计,要求用导线 (i,π(i))将上端接线柱 i 与下端接线柱 π(i) 相连,
如图,其中 π(i),1<=i<=n,是(1,2……,n)的一个排列。导线(i,π(i))称为该电路板上的第i条连线。对于任何 1<=i<s<=n,第i条连线和第s条连线相交的充分且必要条件是 π(i) > π(s)。
ps:注意 π(pi) 和 n,不是小写的n别看错了

问:在制作电路板时,要求将这n条线分布到若干个绝缘层上,在同一层上的连线不能相交。电路布线问题要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。

详细说明
首先 上下各有 n 个接线柱,用 a[i] 数组表示 与 上接线柱  相连线的 下接线柱,再用 set[i][j] 表示上接线柱 i 与下接线柱 j  相连线的 左边(包括 i ,j 连线)的最大不相交连线的个数。
ps(这里的 j ,i  和上面问题中说的不是一个东西,这里的 i指的是上接线柱,j指的是下接线柱)

1、公式如下:      

                如果   j  !=   a[i]    则   max(  set[i-1][j],set[i][j-1]  )
set[i,j] =
               
如果   j ==   a[i]   则   set[i-1][j-1] + 1   

       循环遍历   i 和  j  ,具体使用  i   X   j  的嵌套循环,其实就是每一个上接线柱和每一个下接线柱做一次匹配,这样就可以得出结果,set[n][n]即我们想要的结果。最后通过回溯把结果输出出来
               
==> j == a[i],表示当上图中的某个上下接线柱相连时,这时这两个点不会在和其他的接线柱相连,
                                      这时在 (i ,j) 处的最大不相交连线的个数就应该是就是 第  i-1个上接线柱 和第 j-1个下接线柱时的 最大不相交连线的个数 + 1。这个+1很重要
              ==>  j  != a[i],表示当上图中的某个上下接线柱相连时,这时 i 点和 非 j 点相连, j 点和 非 i 点相连,
                                      这时在( i ,j) 处的最大不相交连线的个数就应该和  ( i - 1,j ) 处最大不相交连线的个数、 ( i,j - 1)处最大不相交连线的个数中较大的最大不相交连线的个数相同。

2、参考图如下
       红色标明的就是算法选择的路径(向上优先,也可以用向左优先,答案都是四个,但值会有一点不同)。在斜角值改变时可以取得所求的子集。即 9->10,7->9, 5->5, 3->4

 

 

代码块

#include <stdio.h>
#include <stdlib.h>#define MAX( a, b ) ( (a) > (b) ? (a) : (b) )
void circut( int a[], int set[][11], int n );
void back_track( int i, int j, int set[][11] );int main()
{int    a[] = { 0, 8, 7, 4, 2, 5, 1, 9, 3, 10, 6 };int    set[11][11];circut( a, set, 10 );printf( "max set: %d \n", set[10][10] );back_track( 10, 10, set );printf( "\n" );system( "pause" );return(0);
}void circut( int a[], int set[][11], int n )
{int i, j;for ( i = 0; i < n; i++ ){set[i][0]    = 0;set[0][i]    = 0;}for ( i = 1; i <= n; i++ ){for ( j = 1; j <= n; j++ ){if ( a[i] != j )set[i][j] = MAX( set[i - 1][j], set[i][j - 1] );elseset[i][j] = set[i - 1][j - 1] + 1;}}
}
void back_track( int i, int j, int set[][11] )
{if ( i == 0 )return;if ( set[i][j] == set[i - 1][j] )back_track( i - 1, j, set );else if ( set[i][j] == set[i][j - 1] )back_track( i, j - 1, set );else{back_track( i - 1, j - 1, set );printf( "(%d,%d) ", i, j );}
}

 

时间复杂度 
circut 的时间复杂度为O(n2
back_track的时间复杂度为 O(n)
如有错误请指正。

 

转载于:https://www.cnblogs.com/kongxianghao/p/7742327.html

http://www.lbrq.cn/news/2775169.html

相关文章:

  • 做网站怎么建文件夹网络的推广
  • ps软件下载绘画品牌推广百度seo
  • 网站备案做优惠券外链在线发布工具
  • 西宁建设公司网站优化推广服务
  • 曰本真人性做爰 酥酥网站青岛网站优化公司
  • 现在还有没有做任务的网站网站建设教程
  • 郑州门户网站建设app开发平台开发
  • 如何做自助网站seo点击软件哪个好用
  • 做全景图二维码的网站凡科建站代理登录
  • 网站title是什么意思宁波seo网站排名
  • 电商网站 解决方案营销服务机构
  • 全国建筑网站seo顾问什么职位
  • 自己做一个网站一年的费用市场营销平台
  • 个人如何建设电子商务网站如何在百度做推广
  • 外贸网站推广多少费用电脑培训学校哪家最好
  • 做网站开发要学什么百度收录推广
  • 泰安网站建设报价关键词抓取工具都有哪些
  • 中山最好的网站建设广州信息流推广公司
  • 怎样建独立网站电影站的seo
  • 做网站v1认证是什么意思google本地搜索
  • 福州网站建设热线电话自己的网站
  • 东莞营销网站建设优化给我免费播放片高清在线观看
  • 建站工作室 网站建设工作室引流人脉推广软件
  • 工程建设领域是什么意思网站及搜索引擎优化建议
  • 达州市住房与城乡建设厅网站下载百度地图2022最新版官方
  • 300平方别墅装修大约多少钱湖南有实力seo优化哪家好
  • 用php做网站难吗如何让网站被百度收录
  • 网站设计服务有哪些关键词排名优化工具
  • 做网站工作都包括什么爱站小工具计算器
  • 网站建设竞价托管什么意思网络营销费用预算
  • 面试题储备-MQ篇 3-说说你对Kafka的理解
  • STL——string的使用(快速入门详细)
  • Leetcode 343. 整数拆分 动态规划
  • 理解AQS的原理并学习源码
  • 旋钮键盘项目---foc讲解(闭环位置控制)
  • C++零拷贝网络编程实战:从理论到生产环境的性能优化之路