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

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

資源簡介

運輸問題標準形式的c++代碼求解,基本思路是用表上作業法求解。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include?
void?input();
void?find();
void?exchange();
void?ud(int?a0?int?b0?int?a?int?b?int?d);
void?lr(int?a0?int?b0?int?a?int?b?int?d);
void?left(int?aint?b?double?min);
void?up(int?aint?b?double?min);

void?output();
void?turn();
void?reverse();
void?initilize();
void?turnup();
void?output();

void?calculate();
bool?check2();
bool?check3();
bool?judge();
bool?judge1();
bool?flag;

int?b0a0;//初始列值
int?m;
int?n;
int?direction=1;
double?Matrix[100][100]={0};
double?A[100][100]={0};//結果輸出矩陣
double?u[100]={0};
double?v[100]={0};
double?sigma[100][100]={0};
int?S[100][100]={0};//確定為基變量

int?M[100][100]={0};//存儲閉合回路路線折點的數組




void?insert();//????find()
bool?check1();

int?main()
{
input();
find();
calculate();//用位勢法計算檢驗數的值
while(judge()==false)//判定是否有檢驗數小于零
{
exchange();
calculate();
}
output();
return?0;
}



void?input()?????????????????????????????????//???????????????????????????????????正確
{
cout<<“請輸入矩陣的行“< cin>>m;
cout<<“請輸入矩陣的列“< cin>>n;
cout<<“請輸入矩陣的系數“< for?(int?i=0;?i<=m;?i++)
{
for(int?j=0;?j<=n;?j++)
cin>>Matrix[i][j];
}
for?(i=1;?i<=m;?i++)
A[i][0]=Matrix[i][0];
for?(int?j=1;?j<=n;?j++)
A[0][j]=Matrix[0][j];
}


void?find()//尋找基變量???????????????????????????????????????????????????????????正確
{
while?(check1()==false)//產銷都為零
{
insert();//插入一個基變量
}
}
bool?check1()//產銷都為零
{
bool?k=true;
for?(int?i=1;?i<=m;?i++)
{
if?(A[i][0]!=0)
k=false;
}
for?(int?j=1;?j<=n;?j++)
{
if?(A[0][j]!=0)
k=false;
}
return?k;
}
void?insert()//插入一個基變量
{
double?min;
for?(int?a=1?b=1;?a<=m?b<=n;?)
{
min=A[0][b];
if?(A[a][0] {
min=A[a][0];
A[0][b]-=min;
A[a][0]-=min;
A[a][b]=min;
S[a][b]=1;
a++;
}
else
{
A[0][b]-=min;
A[a][0]-=min;
A[a][b]=min;
S[a][b]=1;
b++;
}
}
}

void?calculate()?????????????????????????????????//???????????????????????????????????正確
{
for?(int?i=1;?i<=m;?i++)
u[i]=-10000;
for?(int?j=1;?j<=n;?j++)
v[j]=-10000;
u[1]=0;
while?(check2()==false)//確定U?V里面沒有-10000
{
for?(i=1;?i<=m;?i++)
{
for?(j=1;?j<=n;?j++)
{
if?(S[i][j]==1)//確定為基變量
{
if?(u[i]==-10000&&v[j]!=-10000)
u[i]=Matrix[i][j]-v[j];
if?(u[i]!=-10000&&v[j]==-10000)
v[j]=Matrix[i][j]-u[i];
}
}
}
}
for?(i=1;?i<=m;?i++)
{
for?(j=1;?j<=n;?j++)
{
sigma[i][j]=Matrix[i][j]-u[i]-v[j];
}
}
}
bool?check2()
{
for?(int?i=1;?i<=m;?i++)
if?(u[i]==-10000)
return?false;
for?(int?j=1;?j<=n;?j++)
if?(v[j]==-10000)
return?false;
return?true;
}

bool?judge()
{
for?(int?i=1;?i<=m;?i++)
{
for?(int?j=1;?j<=n;?j++)
{
if?(sigma[i][j]<0)
return?false;
}
}
return?true;
}

void?exchange()//找到閉合回路進行基變量轉換
{
output();
double?min=0;

評論

共有 條評論