电路布线
【问题描述】
在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i))将上端接线柱i与下端接线柱π(i)相连,如图所示。
其中,π(i),1<=i<=n是{1,2,…,n}的一个排列。导线(i,π(i))称为该电路板上的第i条连线。对于任何1<=i π(j)。
在制作电路板时,要求将这n条连线分布到若干绝缘层上。在同一层上的连线不相交。你的任务是要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。换句话说,就是确定导线集Nets={ i,π(i),1<=i<=n}的最大不相交子集。
【输入形式】
输入文件第一行为整数n;第二行为用一个空格隔开的n个整数,表示π(i)。
【输出形式】
输出文件第一行为最多的连线数m,第2行到第m+1行输出这m条连线(i,π(i))。
【输入样例】
10
1 8
2 7
3 4
4 2
5 5
6 1
7 9
8 3
9 10
10 6
【输出样例】
4
思路如下:
比较基础的动态规划问题,设a[i][j]为上端接线柱i与下端接线柱j前的最大不相交子集,则:
- 若i与j不相连,则i与j前的最大不想交子集等于i与j - 1前或i - 1与j前的最大不相交子集的最大值,即a[i][j] = max(a[i][j - 1], a[i - 1][j])
- 若i与j相连,则i与j前的最大不想交子集等于i - 1与j - 1前的最大不想交子集加1,即a[i][j] = a[i - 1][j - 1] + 1
=======================签 名 档=======================
原文地址(我的博客):http://lanfei.sinaapp.com/2012/06/1332.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================
分享到:
相关推荐
acm图论.ppt————电子版_ppt版
3. **动态规划**:许多ACM问题可以通过动态规划求解,模版通常会包含一些基础和进阶的DP模板,例如斐波那契数列、最短路径、背包问题等。 4. **贪心算法**:在时间限制严格的ACM比赛中,贪心策略有时能快速得到最优...
动态规划是一种重要的算法思想,常用于解决复杂度较高的优化问题,尤其在计算机科学,特别是ACM(国际大学生程序设计竞赛)中,动态规划是解决许多问题的关键。动态规划的核心在于将一个大问题分解为多个相互关联的...
标题中的“ACM动态规划经典题”指的是在ACM竞赛中经常出现的一类问题,这些题目通常涉及到动态规划的策略和技巧,旨在训练选手们的思维能力和编程技巧。动态规划的核心在于将一个大问题分解为多个小问题,通过构建...
ACM中的动态规划中的状态压缩问题,有讲解和例题。
动态规划是一种在计算机科学和数学中广泛...在ACM竞赛中,掌握动态规划不仅可以帮助参赛者解决难题,还能培养他们的逻辑思维和问题解决能力。通过不断练习和理解,动态规划可以从难以入门的技术转变为解决问题的利器。
在ACM(国际大学生程序设计竞赛)中,动态规划是不可或缺的一部分,帮助参赛者解决各类难题。本文将深入探讨“杭电ACMDP”这一主题,旨在为学习动态规划的ACMer提供一个全面的学习资源。 杭电(Hangzhou Dianzi ...
本文档涵盖了ACM算法竞赛中的各种知识点,包括基本算法、图算法、数据结构、搜索、动态规划、数学和计算几何学等方面的知识点。 基本算法 * 枚举法 * 贪心算法 * 递归和分治法 * 递推法 * 构造法 * 模拟法 图算法...
2. 简单动态规划:如表格形式的DP问题,如poj3267、poj1836等。 3. 最长公共子序列:如poj3176、poj1080等。 4. 最优二分检索树问题:如poj1159。 六、数学 1. 组合数学:加法原理、乘法原理、排列组合和递推关系,...
这个ppt主要介绍蛮力搜索的相关内容,这是我竞赛培训的资料,欢迎大家来下载
ACM竞赛中的动态规划题目通常要求在限制的时间内找到最优解,因此对算法的时间复杂度有较高要求。 1. POJ 2479 Maximum sum 题目: 这道题目是关于找出一个数列中最大连续子序列和的问题。动态规划的解决方案是使用...
在ACM竞赛编程中,动态规划(Dynamic Programming, 简称DP)是一种非常重要的算法思想,对于解决很多复杂问题有着显著的效果。本资源“acm课件动态规划题(杭电)(HDU)”显然是针对这个领域的训练材料,特别适合于...
动态规划是一种重要的算法思想,广泛应用于计算机科学,特别是在解决最优化问题时,如 ACM(国际大学生程序设计竞赛)中的许多经典题目。动态规划的核心在于将一个复杂问题分解为多个子问题,通过解决这些子问题来...
动态规划是一种解决问题的有效方法,尤其在计算机科学领域,如ACM竞赛中,它常常被用于求解最优化问题。动态规划的核心在于通过分解问题并利用子问题的最优解来构建原问题的最优解,它避免了重复计算,提高了效率。 ...
ACM 编程 算法 之动态规划 课件讲义
动态规划(Dynamic Programming,简称DP)是算法设计中的一种重要方法,尤其在解决最优化问题时,如在ACM国际大学生程序设计竞赛(ICPC)中,动态规划的应用尤为广泛。这一专题主要针对ACM ICPC竞赛中的动态规划题目...
《ACM动态规划从入门到精通》是一本深入探讨ACM竞赛中动态规划技术的教程。动态规划(Dynamic Programming,简称DP)是计算机科学中的一种重要算法思想,它通过将复杂问题分解为相互重叠的子问题来求解,特别适用于...
动态规划是一种重要的算法思想,在计算机科学,特别是在ACM(国际大学生程序设计竞赛)中有着广泛的应用。本资源“acm 动态规划ppt专辑”提供了一份详尽的动态规划讲解,涵盖了多项关键概念,旨在帮助学习者深入理解...