您的位置:首页 > 游戏 > 游戏 > 无货源电商怎么起步_网络营销策划方案1500字_新网站排名优化怎么做_市场营销专业课程

无货源电商怎么起步_网络营销策划方案1500字_新网站排名优化怎么做_市场营销专业课程

2024/12/23 14:43:28 来源:https://blog.csdn.net/2301_80124936/article/details/142368242  浏览:    关键词:无货源电商怎么起步_网络营销策划方案1500字_新网站排名优化怎么做_市场营销专业课程
无货源电商怎么起步_网络营销策划方案1500字_新网站排名优化怎么做_市场营销专业课程

不要想别的事情,在打代码的时候

#include<stdio.h>                      
int h[7],pos[7],dis[7];
int size,book[7] = {0};              //注意变量的取值范围!代码可以写得笨一点 //举例子,抽象关系容易错 
void swap(int i,int j){              //要仔细,不要最后几个就大意 int t;                           //搞清楚符号的意义 可以记住画图 t = h[i];                        //特殊情况要注意 for(i = 1;i <= n;i ++) dis[1] = 0;dis[i] = inf;                   // 看看有没有再用到,要不要特殊处理 h[i] = h[j];h[j] = t;t = pos[h[i]];pos[h[i]] = pos[h[j]];pos[h[j]] = t;return;
}void shiftdown(int i){int t;int flag = 0;while(flag == 0 && i <= size / 2){if(dis[h[i]] > dis[h[2 * i]])t = 2 * i;else t = i;//if(dis[h[t]] > dis[h[2 * i + 1]] && 2 * i + 1 <= size)if(dis[h[t]] > dis[h[2 * i + 1]])   //没有 2 * i + 1 <= sizet = 2 * i + 1;if(i != t){swap(i,t);i = t;}else flag = 1;}return;}void shiftup(int i){int t;if(i == 1)return;while(i > 1){//if(dis[h[i / 2]] > dis[h[i]]) //没举例子,把这些个错搞成了父节点当作了h * 2 //t =  i / 2;if(dis[h[i / 2 * 2 * 2]] > dis[h[i]])  t =  i / 2 * 2 * 2;    //i / 2 * 2 * 2   i / 2 * 2elset = i;if(t != i){swap(i,t);i = t;}else break;}return;}int pop(){int t;t = h[1];h[1] = h[size];h[size] = t;pos[h[1]] = 1;pos[h[size]] = size;size --;shiftdown(1);return t;
}int main(){int n,m,inf = 99999999;int i,count = 0,sum = 0;int t1,t2,t3;int u[19],v[19],w[19],first[7],next[19];scanf("%d %d",&n,&m);for(i = 1;i <= n;i ++)book[n] = 0;size = n;for(i = 1;i <= n;i ++)dis[i] = inf;dis[1] = 0;for(i = 1;i <= n;i ++)first[i] = -1;for(i = 1;i <= n;i ++){h[i] = i;pos[i] = i;}for(i = 1;i <= m;i ++){scanf("%d %d %d",&u[i],&v[i],&w[i]);next[i] = first[u[i]];first[u[i]] = i;}for(i = m + 1;i <= 2 * m;i ++){u[i] = v[i - m];v[i] = u[i - m];w[i] = w[i - m];next[i] = first[u[i]];first[u[i]] = i;}int k = first[1];while(k != -1){if(dis[v[k]] > w[k] && book[1] == 0){dis[v[k]] = w[k];shiftup(v[k]); } k = next[k];}book[1] = 1;count ++;for(i = 1;i <= n;i ++)printf("%d ",dis[i]);printf("\n");//for(i = n;i < 1;i --){    //没考虑dis【1】 == 0 //shiftup(i);//}int hd = pop();  //不能和数组同字 NO use hprintf("first pop is %d\n",hd);for(i = 1;i <= n;i ++)printf("h[%d] = %d ",i,h[i]);printf("\n");while(count < n){int j = pop();printf("pop is %d\n",j);for(i = 1;i <= n;i ++)printf("h[%d] = %d ",i,h[i]);printf("\n");sum += dis[j];book[j] = 1;count ++;k = first[j];while(k != - 1){//if(dis[v[k]] > w[k] && book[v[k]] == 0){  //写成了 book[k]if(dis[v[k]] > w[k] && book[k] == 0){dis[v[k]] = w[k];                //这里某个关系错误 shiftup(v[k]);}k = next[k];}for(i = 1;i <= n;i ++)printf("%d ",dis[i]);printf("\n");}printf("%d\n",sum);return 0;
}

长串代码更要注意易错点(就那么几个)

但是究竟是思维过载还是,单纯没注意到?还是二者兼有?这是个有待考察的问题

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com