hdu 4081 Qin Shi Huang's National Road System

  题目说的是秦始皇的庞大的道路体系,他想通过n-1条道路把n的城市连在一起,并且要道路的总长度minimum。有个奇葩的daoshi named Xu Fu告诉他说,他可以通过法术凭空修建一条路,并且这条路不花费金钱和人力,并且仅能修建一条道路。所以就需要考虑该把这个magic road 修在哪。。咱始皇帝命令value=A/B must be the maximum,which A is the total population of the two cities connected by the magic road,and B is the total length of none magic roads.

  n太大,显然暴力枚举magic road的两端点,从而算mst,并更新最小值的思路是行不通的。所以我们想,如果这题中不存在所谓的magic road,那我们是不是进行一次最小生成树算法就可以搞定。现在我们需要保证每次选边都先把magic road选定,每次选择的时候,我们需要知道这条边是不是在最终找到的最小生成树里边,如果在,那就直接mst-这条边的长度,如果不在,那么把这条边加进去跟我们最终找到的最小生成树一定会形成环。那么接下来咱就需要找到涉及到这个magic road的所有环中第二大的边,为什么是第二大,因为找最小生成树的时候边是从小到大来找的,magic road肯定是图中最大的边。又因为我们要找的第二大的边肯定是最小生成树中的边,所以我想暴找。调试了好长时间这个部分都不成功,后来就百度找了下题解。参考了下这里的那个dfs,代码就不贴了,他解释的也挺好的。

看到他里面说这就是传说中的最优比率生成树。。但是感觉黑书里面的最优比率的分子跟分母好像都是跟边有关的东西吧,这个题分子是跟点有关的。。是人口。。算了。

我又百度了下最优比率生成树,找到三鲜大神的博客园,附上链接:

三鲜大神:http://www.cnblogs.com/lotus3x/archive/2009/03/21/1418480.html

cicirise:http://blog.csdn.net/cicirise/article/details/3904362

zzninGeXPerience:http://hi.baidu.com/nelstesfeibeiyq/item/28aa46e0fd86bdc2bbf37d03

ymifa:http://blog.sina.com.cn/s/blog_691190870101626q.html

转载于:https://www.cnblogs.com/RainingDays/archive/2013/04/28/3049977.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值