当前位置:首页 » 编程语言 » 贪心算法c语言

贪心算法c语言

发布时间: 2025-03-17 00:57:41

c语言 贪心算法 小朋友分组 急急急急急急急 立刻!!!!!!!

int fun(int *a, int n, int MinC, int MaxC)
{
int pmin, pmax, smin, smax, i;
pmin = pmax = smin = smax = 0;
for(i=0; i<n; i++)
{
if(a[i] < MinC)pmin += (MinC - a[i]);
if(a[i] > MaxC)pmax += (a[i] - MaxC);
smin += (a[i] - MinC);
smax += (a[i] - MaxC);
}
if(pmin == pmax)return pmin;
if(pmin > pmax && smin > 0)return pmin;
if(pmax > pmin && smax < 0)return pmax;
return -1;
}
void main()
{
int a[] = {20,8,6};
printf("%d %d %d",fun(a,3,10,15),
fun(a,3,5,20),fun(a,3,1,2));
}

看一下fun函数行不行

㈡ C语言 贪心算法求背包问题

是你的冒泡排序出了问题~

你吧 原来的1-2-3号按照东西的价值重新排列现在的1-2-3对应原来的2-1-3了
所以 你输出的时候是按 1-2-3输出的话 就等于第一个是原来的X2 第二个是X1第三个是X3
而且你的冒泡排序用错了 只比较了 P[0]/K[0]和P[1]/K[1] P[1]/K[1]和P[2]/K[2]
周一我去学校帮你重新改改 我家的机器没有C++
周一晚上我会上传答案~我最近正好也要做算法的作业~
#include <stdio.h>
#include <math.h>
#define N 50

float find(float p[N],float w[N],float x[N] ,float M,int n) /*先放单位价值量大的物体,再考虑小的物体*/
{
int i;
float maxprice;
for (i = 0; i < n; i++)
x[i] = 0;
i = 0;
maxprice=0;
while (i < n && w[i] < M)
{
M=M-w[i];
x[i] =w[i]; /* 表示放入数量 */
maxprice=maxprice+p[i];
x[n-1]=M;
i++;
}
if (i < n &&M> 0)
{
maxprice=maxprice+p[i]*x[i]/w[i];
i++;
}
return maxprice;
}

int main()
{
int n,flag=1;
float temp,M,w[N],p[N],x[N];
int a[N],b[N];
int k,j,l=0;
printf(

热点内容
scratch少儿编程课程 发布:2025-04-16 17:11:44 浏览:637
荣耀x10从哪里设置密码 发布:2025-04-16 17:11:43 浏览:366
java从入门到精通视频 发布:2025-04-16 17:11:43 浏览:82
php微信接口教程 发布:2025-04-16 17:07:30 浏览:308
android实现阴影 发布:2025-04-16 16:50:08 浏览:789
粉笔直播课缓存 发布:2025-04-16 16:31:21 浏览:339
机顶盒都有什么配置 发布:2025-04-16 16:24:37 浏览:210
编写手游反编译都需要学习什么 发布:2025-04-16 16:19:36 浏览:810
proteus编译文件位置 发布:2025-04-16 16:18:44 浏览:364
土压缩的本质 发布:2025-04-16 16:13:21 浏览:590