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

  • 大小: 6KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: C/C++
  • 標簽:

資源簡介

節約里程法實現。本科做畢業設計時用到了,比較菜,而且適用性比較有限,大家可以做參考

資源截圖

代碼片段和文件信息

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

using?namespace?std;

struct?vec_load
{
int?vnum;
int?rest;
vec_load(int?iint?j):vnum(i)rest(j){}
?}?;

class?path
{
public:
deque?no;
int?dis;
double?vec;
int?fr;
????path(double?vint?i):vec(v)f(i)r(i){ }?
};

void?creatpath(int&?numbint**?distvector&?loaddouble?re);

int?main()
{
int?numb=14;
double?temp;
cout<<“請輸入客戶數:“< ifstream?fin(“dist.txt“);

cin>>numb;
cout<<“請依次輸入各個客戶需求量(用空格隔開):“< vector?load;//用于存儲各物流子節點貨物量需求量?
for(int?i=0;i {
cin>>temp;
load.push_back(temp);
}
int?**dist;?//指向存儲給節點最短距離的二維數組?
dist=new?int*[numb+1];
for(int?i=0;i dist[i]=new?int[numb+1]{0};
??//cout<<“請依次輸入各客戶到配送中心的最短距離:“< for(int?i=0;i {
fin>>dist[0][i+1];
dist[i+1][0]=dist[0][i+1];
?}?
?for(int?i=1;i ?{
? //cout<<“請輸入“< for(int?j=i+1;j<=numb;j++)
? {
? fin>>dist[i][j];
? dist[j][i]=dist[i][j];
?}
?}
?//循環獲取配送中心的車輛載荷及對應數量,用vector進行存儲
?????double?re=15;
//?cout<<“請輸入車輛載荷“< ?//cin>>re;
??

creatpath(numbdistloadre);
?
return?0;
?}?
?
void?creatpath(int&?numbint**?distvector&?loaddouble?re)?
{
//新建一個numb維表格存儲節約里程
int**save;?
save=new?int*[numb];
for(int?i=0;i save[i]=new?int[numb]{0};
//計算節約里程并填入save表中指定位置
for(int?i=0;i {
for(int?j=i+1;j {
save[i][j]=dist[0][i+1]+dist[0][j+1]-dist[i+1][j+1];
save[j][i]=save[i][j];
}
?}?
//定義一個類,存儲兩節的編號以及節約里程,便于后續排序
class?Save_node
{
public:
int?mn;
????int?dis;
????void?set(int?&iint?&jint&d)?
{
????this->m=i;
????this->n=j;
????this->dis=d;
}

};
Save_node?temp;
vector?rsave;
for(int?i=0;i for(int?j=i+1;j {
temp.set(ijsave[i][j]);
rsave.push_back(temp);
}
sort(rsave.begin()rsave.end()[](Save_node&?s1Save_node&?s2){return?s1.dis>s2.dis;});
auto?it1=rsave.begin();


/*?for(auto?&r:rsave)
{
cout<<“\t“<}*/

vector?result;
int?time=0;
for(auto?&v:load)
{
auto?ptemp=path(vtime);
ptemp.dis=2*dist[0][time+1];
ptemp.no.push_back(time);
ptemp.f=ptemp.no.front();
ptemp.r=ptemp.no.back();
result.push_back(ptemp);
time++;
}
????vector?suc;
???
??
???
bool?fnode(int&?path?&);
bool?rnode(int&?path?&);
while(suc.size()!=numb&&it1!=rsave.end())
{
int?head=it1->m;
int?back=it1->n;
//cout<m<<“\t“<n<<“\t“<dis< ???auto?i1=

評論

共有 條評論

相關資源