91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 105KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-07
  • 語言: 其他
  • 標簽: YEN??

資源簡介

Yen算法求前K短路,無向圖中求Yen算法求前K短無環路。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?

using?namespace?std;

typedef?char?VT;//點
typedef?int?LT;//邊

const?VT?MAX_VER?=?50;
const?LT?MAX_LEN?=?99999999;

struct?Edge
{
????VT?to;
????LT?len;
????Edge*?next;

????Edge(VT?t?=?0?LT?l?=?0?Edge*?n?=?NULL)
????{
????????to?=?t;
????????len?=?l;
????????next?=?n;
????}
};

struct?Path
{
????vector?node;
????vector?block;
????LT?len;

????//偏差結點.?前驅節點在第K短樹的路徑上
????VT?dev;

????Path(VT?v?=?0)?:?node()?block()
????{
????????node.push_back(v);
????????len?=?0;
????}

????bool?operator?>?(const?Path&?p)?const
????{
????????return?len?>?p.len?||?len?==?p.len
???????????????&&?lexicographical_compare(
???????????????????p.node.rbegin()?p.node.rend()
???????????????????node.rbegin()?node.rend()?);
????}
};

ostream&?operator?<{
????os?<????for?(int?i?=?p.node.size()?-?2;?i?>=?0;?i--)
????{
????????os?<“?<????}
????return?os;
}

class?Graph
{
public:
????Graph()
????{
????????memset(m_adj?0?sizeof(m_adj));
????}
????~Graph()
????{
????????init();
????}

????//對邊的判重
????void?addEdge(VT?from?VT?to?LT?len)
????{
????????if?(?NULL?==?m_edge[from][to]?)
????????{
????????????m_adj[from]?=?new?Edge(to?len?m_adj[from]);
????????????m_edge[from][to]?=?m_adj[from];
????????}
????}

????void?dijkstra()
????{
????????int?minV;
????????for?(int?iter?=?0;?iter?????????{
????????????minV?=?-1;
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(!m_visit[i]
????????????????????????&&?(minV==-1?||?m_sh[i]????????????????????)
????????????????{
????????????????????minV?=?i;
????????????????}
????????????}
????????????if?(minV==-1)??break;
????????????m_visit[minV]?=?true;
????????????for?(Edge*?adj?=?m_adj[minV];?adj;?adj?=?adj->next)
????????????{
????????????????VT?to?=?adj->to;
????????????????//滿足條件?“!m_visit[to]“
????????????????if?(!m_visit[to]?&&?!m_block[minV][to])
????????????????????relax(minV?to?adj->len);
????????????}
????????}
????}

????void?init(VT?verCnt?=?MAX_VER)
????{
????????memset(?m_edge?0?sizeof(m_edge)?);
????????m_verCnt?=?verCnt;
????????Edge*?p?*temp;
????????for?(VT?i?=?0;?i?????????{
????????????p?=?m_adj[i];
????????????while?(p)
????????????{
????????????????temp?=?p;
????????????????p?=?p->next;
????????????????delete?temp;
????????????}
????????????m_adj[i]?=?NULL;
????????}
????}

????//Yen算法求出K短路徑,如果有兩相同長度的路徑,取源節點標號小的為第k短
????vector?yenLoopless(VT?source?VT?sink?int?k)
????{
????????vector?result;
????????priority_queue?greater?>?candidate;
????????memset(m_block?0?sizeof(m_block));
????????initSingleSrc(source);
????????dijkstra();
????????if?(?sh

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????163328??2009-09-12?16:08??前k短路.ppt

?????文件???????7740??2009-09-11?08:34??main.cpp

-----------?---------??----------?-----??----

???????????????171068????????????????????2


評論

共有 條評論