差之毫厘, 异之千里 --- 从 UVa1292 与 [HNOI2003]消防局的设立 的异同谈审题的重要性...

本文主要是介绍差之毫厘, 异之千里 --- 从 UVa1292 与 [HNOI2003]消防局的设立 的异同谈审题的重要性...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天做dp的时候, 看见一道似曾相识的题 ---  [HNOI2003]消防局的设立

我的第一反应就是 UVa1292 Strategic game 这道题. 我以为, 这两题的差距只在"控制的距离上".

于是乎, 苦想dp无果(虽然这题可以dp). 看题解发现原来是简单的贪心.

解决了这道题以后, 我就回头研究UVa1292了. 在网上找了一圈, 发现没有用贪心做的.

我岂不是发现了一种新的做法?

果断码码码, 结果

  

好吧, 我冷静下来, 再认真的读了一遍这个题,.

果然, 发现了这两个题之间细小的差别 :

UVa1292的部分题干

 

 [HNOI2003]消防局的设立 的部分题干

和@HailJedi讨论了一下,

这两个条件看起来等价, 实则不同. 从图论角度来说, 前者可以看做非二分图的 最小点覆盖 问题, 而后者可以看做非二分图的 最小边覆盖 问题的变形.

前者的解决方法一般采用dp, 而后者的解决方法一般是贪心. 后者的贪心策略用在前者上是错误的.

设红色的为根节点, 那么根据 HNOI 一题的贪心策略,我们会选择蓝色的点, 假设每一个点"管辖"的范围是1, 那么所有点都被覆盖住了,但是两条橙色的边没有被覆盖,不满足 UVA 一题的条件

我反思了一下我的做题过程, 因为"记得"做过类似的题, 所以并没有仔细审题, 也没有仔细分析这一题的性质. 这就是问题所在. 假如我"忘记"之前做过的题, 认真分析这一题的条件, 那么贪心是不难想出来的.

所以, 考场上如果遇到自己见过的题, 一定不要高兴的太早, 必须确认模型完全相同后才能套用之前的做法.

转载于:https://www.cnblogs.com/wsmrxc/p/9295116.html

这篇关于差之毫厘, 异之千里 --- 从 UVa1292 与 [HNOI2003]消防局的设立 的异同谈审题的重要性...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668517

相关文章

可测试,可维护,可移植:上位机软件分层设计的重要性

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗? 有必要。本文从三个方面论述。分别是可测试,可维护,可移植。 可测试 软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

DTO类实现Serializable接口的重要性

所谓序列化,简单一点理解,就是将对象转换成字节数组,反序列化是将字节数组恢复为对象。凡是要在网络上传输的对象、要写入文件的对象、要保存到数据库中的对象都要进行序列化。Java对象是无法直接保存到文件中,或是存入数据库中的。如果要保存到文件中,或是存入数据库中,就要将对象序列化,即转换为字节数组才能保存到文件中或是数据库中。文件或者数据库中的字节数组拿出来之后要转换为对象才能被我们识别,即反序列化。

HDU2523(论scanf的重要性)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2523 解题思路: 先把a数组排个序,然后把| xi - xj |的所有组合值求出来,把b数组在排个序。这时候要考虑出现1、1、1、2、2、3这种相邻两个一样的情况,开一个vis标记数组把相邻的数进行合并,这样就可以顺利取到第k大的值。 特别说明,论scanf和printf的重要性,用cin

论互联网安全的重要性

论互联网安全的重要性 当今,计算机领域什么最火?当属人工智能了,纵观各大IT巨头google,facebook,apple,Baidu都有自己的人工智能实验室,google有谷歌大脑,其主要计划是研究当今最顶级的技术,比如无人驾驶汽车,google眼镜,百度成立IDL深度研究院等等。这是不是代表,未来我们的生活将因人工智能的发展而发生巨大变化?我想是的。人工智能要基于海量数据处理,这些数据包含大

高精度治具加工的重要性和创新性

在现代制造业中,高精度治具加工扮演着至关重要的角色。它不仅是生产过程中的关键环节,更是推动行业不断创新和发展的重要力量。时利和将解析高精度治具加工的重要性和创新性。   一、高精度治具加工的重要性   1.确保产品质量   高精度治具能够为生产过程提供准确的定位、夹紧和导向功能,从而确保产品的尺寸精度、形状精度和表面质量。例如,在电子制造领域,高精度的治具可以保证芯片的精确安装,提高电子

bash脚本2_对比多个不同版本同名文件的异同

bash脚本2_对比多个不同版本同名文件的异同 #!/bin/bashFOLDER_A="$1"FOLDER_B="$2"IGNORE_STRING="loc_timestamp"subfolders=$(ls -d "$FOLDER_A"/*/)for subfolderA in $subfolders; dosubfolder_name=$(basename "$subfol

Mybatis与Hibernate的异同

以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点: 1. hibernate是全自动,而mybatis是半自动。 hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis

Android canvas save restore saveLayer的异同点

一、基础操作 drawText、drawRect、drawColor等 对于这些基础操作,相信每一个安卓开发者都能说上个一二点出来,这些就不多做介绍,api 工程师必备技能之一。 在进阶之前,先回答这个问题:    问:canvas既然大家都理解为画布,那如果先在画布上绘制了某些内容,然后再canvas.rotate旋转了画布,为什么这些已经绘制在画布上的内容不会跟随着旋转?    答:由此可

模型“鲁棒性”是什么,和“泛化性”有什么异同。

文章目录 1.范例2. 鲁棒性包含哪些内容2.1. 对噪声的鲁棒性2.2. 对不同分辨率或缩放的鲁棒性2.3. 对图像压缩的鲁棒性2.4. 对光照变化的鲁棒性2.5. 对姿态和视角变化的鲁棒性2.6. 对领域迁移的鲁棒性2.7. 对对抗样本的鲁棒性2.8. 对丢失数据或不完整数据的鲁棒性2.9. 对时序数据的鲁棒性 3.鲁棒性和泛化性的关系3.1.泛化性(Generalization)3.2