資源簡介
最小重量機器問題源碼(分支限界,回溯法)

代碼片段和文件信息
#include?“fstream.h“???
#include?“iostream.h“???
struct?nodetype??
{???
??????int?peer;???
??????struct?nodetype?*parent;???
??????int?position;???
??????double?cw;???
??????double?cv;???
??????double?r;????
};???
struct?nodetype?*queues[100000000];???
??
void?insert(struct?nodetype?*x?int?oldlast)?//x是要插入的數(shù)
{?
//oldlast是目前堆的元素數(shù)目????????????????????????????????????????????????
?????int?last?=?oldlast+1;
?????queues[last]=x;
?????int?i=last;???????????????????????????????????????????????????????
?????while((i?>?1)&&(queues[i]->r?r))
?{
?struct?nodetype?*temp;
?????????temp=queues[i];???
?????????queues[i]=queues[i/2];
?????????queues[i/2]=temp;
?????????i?=?i/2;?
?}?
} ???????????????????????????????????????????????????????????
struct?nodetype?*?deletemin(int?laststruct?nodetype?*a[])?
{??????//返回堆的第一個元素(即最小元素)?????
?struct?nodetype?*temp;
?????temp=a[1];?
?????a[1]=a[last];?
?????last?--;????????????????????????????????????????????????????????
?????int?i?=?1;???
?int?j=0;????????????????????????????????????????????????????????
?????while(i?<=?last/2)???????????????????????????????????????????????
{??
?if((a[2*i]->r?r)||(2*i?==?last))?
?????????j?=?2*i;?
?????????else
??j=2*i+1;????????????????????????????????????????????????????
?if(a[i]->r?>?a[j]->r)?
??{??????????????????????
????????????struct?nodetype?*temp;???
????????????temp=a[i];???
????????????a[i]=a[j];???
????????????a[j]=temp;
????????????i?=?j;??????????????????????????????????????????????????
??????????}???????????????????????????????????????????????????????????
???????????else?
???return(temp);??????????????????????????????????????????
???????}???????????????????????????????????????????????????????????????
???????return(temp);???????????????????????????????????????????????????
???}??????????????????????????????????????????????????????????????????????
??void?main()??/////////////////////////////////小根堆///////////////////////////////???
???{???
???????ifstream?fin(“input.txt“);???
???????ofstream?fout(“output.txt“);???
???????int?nmc;???
???????fin>>n;fin>>m;fin>>c;???
???????double?**w=new??double*[n+1];???
???????double?**cc=new?double*[n+1];???
???????for(int?i=1;i<=n;i++)
???{???
??????????w[i]=new?double[m+1];???
??????????cc[i]=new?double[m+1];???
???????}???
???????for(i=1;i<=n;i++)???
???????????for(int?j=1;j<=m;j++)???
????????????fin>>cc[i][j];???
???????for(i=1;i<=n;i++)???
????????????for(int?j=1;j<=m;j++)???
????????????fin>>w[i][j];???
????????double?*cmin=new?double[n+1];???
????????double?*wmin=new?double[n+1];???
????????for(i=1;i<=n;i++)?
{???
?????????cmin[i]=cc[i][1];???
?????????wmin[i]=w[i][1];???
???for(int?j=2;j<=m;j++)?
???{???
if(cmin[i]>cc[i][j])?cmin[i]=cc[i][j];???
????????????if(wmin[i]>w[i][j])?wmin[i]=w[i][j];???
???}???
}???
????double?*rc=new?double[n+1];//剩余部件最小價格和???
????double?*rw=new?double[n
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????14??2011-06-21?08:41??output.txt
?????文件?????????42??2011-06-21?08:41??input.txt
?????文件???????4577??2011-06-21?08:39??分支限界.cpp
?????文件???????1964??2011-06-21?08:28??回溯法.cpp
-----------?---------??----------?-----??----
?????????????????6597????????????????????4
- 上一篇:RSA算法加密解密源碼及程序完整的工程文件
- 下一篇:常用的清除日志方法
評論
共有 條評論