Poj 1201 (差分约束系统)

博主分享了自己独立解决Poj 1201差分约束系统问题的经验。通过不断分析错误,从错误的建图方法到正确的建边策略,最终解决了线段上至少选点数的问题。在建图过程中,博主强调了线段区间处理和隐含的最大可选点数,并指出原本多余的边导致超时,去除后获得正确解。
摘要由CSDN通过智能技术生成

 

     这是我的第五道“差分约束系统”;,值得庆祝的是,本题完全是自己做出来的,没有参考任何资料,呵呵.....兴奋......

     题意理解:(题意有点费解,看了几遍才懂)第一行输入n,下面输入n个限制条件,条件的格式为 ai bi ci,  0<=ai<=bi<=50000,1<=ci<=bi-ai+1.表示在线段[ai,bi]上至少选ci个点,使被选出的点的个数最少而且满足所有的限制条件,输出这个最小值。

题目分析:

1. 开始我用每个整数(1,2,...)当做图的结点,添加边就是 add(b, a, -c),写出来之后发现连题目的样例数据都输出错误结果8.

2. 研究了一番发现这样不行,比如有两个限制条件分别为:1 3 2, 3 6 2; 那么按照上面的思路添加这两条边<3,1>=-2, <6,3>=-2; 后又可以得到边 <6,1>=-4, 意思是在线段[1,6]上至少要选4个点,而实际上不是的,应该是至少要选3个点才对,问题出哪呢??因为线段[1,3]和[3,6]有一个公共点3. 

3. 所以要换一种方式建图,对于一个条件(ai,bi,ci)实际上表示在开区间(ai-0.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值