背影慢慢移动在这样空阔苍凉的背景

  所谓的棉花堡,是一个白色石灰岩的山坡,有温泉从坡顶流下,把山坡冲刷成阶梯状,在一个个平台处形成了小水池。我们住的旅馆距离棉花堡大概十分钟步行路程,站在旅馆门口就可以看到那一大堆白色赫然伫立在路的尽头。预先知道棉花堡必须脱鞋参观的,带了装鞋子的塑料袋之类,就出发了。

   白色石灰岩白色石灰岩

  河南旅游,脱鞋,脚底开始了与十二月湿漉漉的棉花堡的亲密接触,一开始有一点点凉,但很快也就习惯了。

   大气磅礴大气磅礴

  那天上午棉花堡的游客真的不多,山东旅游跟我们同时上山的只有另外四个人:一对韩国情侣,男生兴奋地在水池子里拍飞人照结果溅了自己一身;一对中国情侣,请我帮他们拍了合影;然后就是我们“山”字组合了。远远看着情侣们的背影慢慢移动在这样空阔苍凉的背景里,忽然觉得,冬天的棉花堡,其实很合适谈恋爱,因为够清静,不怕被打搅;因为有点冷,更能体会一点温暖的可贵;而这样自然的鬼斧神工,也更容易让人被老天荒之类的词汇感动。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27479028/viewspace-753783/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27479028/viewspace-753783/

好的,下面是借助Bellman-Ford算法,用C++实现在有向图中求最小长度简单回路的程序: ```c++ #include <iostream> #include <vector> #include <climits> using namespace std; struct Edge { int from, to, cost; Edge(int f, int t, int c) : from(f), to(t), cost(c) {} }; int shortestCycle(vector<Edge>& edges, int n) { vector<int> dist(n, INT_MAX); for (int i = 0; i < n; i++) { for (int j = 0; j < edges.size(); j++) { Edge e = edges[j]; if (dist[e.from] != INT_MAX && dist[e.to] > dist[e.from] + e.cost) { dist[e.to] = dist[e.from] + e.cost; if (i == n - 1) { return dist[e.to]; } } } } return -1; } int main() { int n = 5; vector<Edge> edges; edges.push_back(Edge(0, 1, 1)); edges.push_back(Edge(0, 2, 5)); edges.push_back(Edge(1, 2, 2)); edges.push_back(Edge(1, 3, 2)); edges.push_back(Edge(1, 4, 1)); edges.push_back(Edge(2, 3, 1)); edges.push_back(Edge(2, 4, 3)); edges.push_back(Edge(3, 4, -10)); int cycleLength = shortestCycle(edges, n); if (cycleLength == -1) { cout << "There is no simple cycle in the graph." << endl; } else { cout << "The length of the shortest simple cycle in the graph is " << cycleLength << endl; } return 0; } ``` 该程序的输入是边的集合`edges`和顶点总数`n`。输出为最小长度的简单回路长度,如果不存在简单回路,则输出"There is no simple cycle in the graph."。 实现中,我们在Bellman-Ford算法的基础上,增加了一个判断:如果在第n次循环时,仍然存在可以更新的顶点,则说明图中存在负权环路,此时算法无法求出最短路径。因为简单回路是没有重复边和重复顶点的,所以最小长度的简单回路一定不会包含负权环路。所以当发现负权环路时,可以直接输出不存在简单回路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值