3027 线段覆盖 2

3027 线段覆盖 2

 

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述  Description

数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。

n<=1000

输入描述  Input Description

第一行一个整数n,表示有多少条线段。

接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端点<右端点)和价值ci。

输出描述  Output Description

输出能够获得的最大价值

样例输入  Sample Input

3

1 2 1

2 3 2

1 3 4

样例输出  Sample Output

4

数据范围及提示  Data Size & Hint

数据范围

对于40%的数据,n≤10;

对于100%的数据,n≤1000;

0<=ai,bi<=1000000

0<=ci<=1000000

 思路:首先我们按照正常线段覆盖问题的方法把所有线段按照结束顺序排序

   然后我们想,对于每一个线段,我们有选和不选两种情况

   so我们遍历所有节点,如果该节点能被访问,并且该节点贮存数组中的最大值加上我们正在dp的点的值大于原来的值。我们就更改

   这样dp下来

   dp[n]中的就是最大值

   动态转移方程:

   dp[i]=max(dp[i],dp[p]+a[i].v)

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 const int MAXN=1001;
 6 struct node
 7 {
 8     int bg;
 9     int ed;
10     int v;
11 }a[MAXN];
12 int comp(const node &a ,const node &b)
13 {
14     return a.ed<b.ed;
15 }
16 int dp[MAXN];
17 int main()
18 {
19     int n;
20     scanf("%d",&n);
21     for(int i=1;i<=n;i++)
22     {
23         int x,y,z;
24         scanf("%d%d%d",&x,&y,&z);
25         if(x>y)swap(x,y);
26         a[i].bg=x;a[i].ed=y;a[i].v=z;
27     }
28     sort(a+1,a+n+1,comp);
29     for(int i=1;i<=n;i++)
30     {
31         dp[i]=max(dp[i-1],a[i].v);
32         for(int p=i-1;p>=1;p--)
33         {
34             if(a[p].ed<=a[i].bg)
35             dp[i]=max(dp[i],dp[p]+a[i].v);
36         }
37     }
38     printf("%d",dp[n]);
39     return 0;
40 } 

 

转载于:https://www.cnblogs.com/zwfymqz/p/6764358.html

内容概要:本文系统介绍了术优化法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式法,其核心思想来源于四则运,利用乘除运进行全局勘探,加减运进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估法性能,并提出自适应参数调整、模型优化和并行计等改进策略。; 适合人群:具备一定Python编程基础和优化法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化法集成到Web系统中实现工程化应用;④为法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值