问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言排队接水问题(n人k水龙头)

发布网友 发布时间:2024-10-13 05:00

我来回答

3个回答

热心网友 时间:2024-10-13 14:19

你是刚从PASCAL转的C吧,方法没错,只有一个小毛病
//for(i=0;i<=n;i++)(n的上限是10000,你申请了102……)
for (i=0;i<102;i++)
{
a[i][1]=a[i][0]=0;
}
如果你要初始化的话,加个<string.h>头文件,memset(a,0,sizeof(a));会更方便
你写的qsort,c语言有这个函数,在<stdlib.h>中,有qsort这个函数,那么你就不用再写了。
编程吧登陆不上去,至于还有什么其他毛病,我就不清楚了追问恩,首先先感谢你上次对我问题的解答。。。我觉得你很厉害哈。那个真的登陆不上去吗。。。

追答……我承认我那次打错账号了……
你的代码修改后的,首先,你的sum和a数组应该定义为long long ,因为该题的最差情况下的和为n*t^2,大概是1万亿的数量级,超过了int的上限约21亿。还有,我说的初始化,以及qsort,我不确定你写的是不是完全对(因为我的QSORT风格跟你不一样),但是,用C语言的库函数确实比你的更快,更安全,更省空间。这是测试过的代码
#include
#include
/*void qs(int s,int e,int k[])
{
int t,i=s,l=e;
t=k[s];
if(i>=l)
return;
while(i=t)--l;
k[i]=k[l];
while(i<l&&k[i]<=t)++i;
k[l]=k[i];
}
k[i]=t;
qs(s,i-1,k);
qs(i+1,e,k);
}*/
int cmp (const void *aa,const void *bb) //比较函数,要注意的是,输入输出的都必须是指针,一个字都不能少,否则编译不成功,背下来好了,a-b是升序,b-a是降序
{
return *(int *)aa-*(int *)bb;
}
main()
{
int i,m,n,b[10005],k;
long long sum,a[102][2];
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&n,&k);
for(i=0;i<102;i++)
{
a[i][1]=a[i][0]=0;
}
for(i=1;i<=n;i++)
{
scanf("%d",&b[i]);
}
//qs(1,n,b);
qsort (b,n+1,sizeof (b[0]),cmp);
for(i=1;i<=n;i++)
{
a[i%k][0]+=b[i];
a[i%k][1]=a[i%k][0]+a[i%k][1];
}
for(i=0,sum=0;i<k;i++)
{
sum=sum+a[i][1];
}
printf("%Ld\n",sum);
}
return 0;
}

热心网友 时间:2024-10-13 14:20

高精度问题吧,sum可能会溢出,不知道你们学校的OJ是用__int64还是long long,试下吧追问额。。。。那怎么改

追答把a[][]和sum改成long long,输入sum时,改成%ld

热心网友 时间:2024-10-13 14:20

//我记得是贪心
c语言排队接水问题(n人k水龙头)

你是刚从PASCAL转的C吧,方法没错,只有一个小毛病 //for(i=0;i&lt;=n;i++)(n的上限是10000,你申请了102……)for (i=0;i&lt;102;i++){ a[i][1]=a[i][0]=0;} 如果你要初始化的话,加个&lt;string.h&gt;头文件,memset(a,0,sizeof(a));会更方便 你写的qsort,c语言有这个函数,...

C语言排队接水

} avg=avg/n;fprintf(opt,"\n%.2f\n",avg);fclose(opt);fclose(ipt);}

接水问题代码求注释

{ scanf("%d",&amp;b[i]);} 这段表示m个水龙头同时开始接水。比如样例1,共三个水龙头,即前三个人开始接水,且水龙头放水时长为b[0]、b[1]、b[2]分别为4、4、1 for(;i&lt;n;i++){ scanf("%d",&amp;a);b[min(b,m)]+=a;} 这段就是整段程序的精髓,这段就是每次一个人接水的水龙头...

跪求noip2010接水问题的代码,C++的,哪位编程高手教教小弟吧。。。_百度...

include &lt;stdio.h&gt; int main(){ freopen("water.in","r",stdin);freopen("water.out","w",stdout);int n,m,i,j,a[10001],b[101],bmax,mn,mk,k;scanf("%d%d",&amp;n,&amp;m);for (i=0;i&lt;n;i++)scanf("%d",&amp;a[i]);for (i=0;i&lt;m;i++)b[i]=a[i];for (i=m;i&lt;n;...

跪求noip2010普及 接水问题(water)程序代码,望哪位高手帮帮忙谢谢啊...

begin tmp:=heap[k];while (k shl 1&lt;=m) do begin kk:=k shl 1;if (kk+1&lt;=m)and(heap[kk]&gt;heap[kk+1]) then inc(kk);if heap[kk]&lt;heap[k] then begin heap[k]:=heap[kk];k:=kk;end else break;end;heap[k]:=tmp;end;begin fillchar(heap,sizeof(heap),0);readln(...

有5个人拿着不同的水桶在一个水龙头前排队打水,前面的人接满后离开...

故选C.【分析】根据该问题的“隐含”假设条件.一是水龙头的供水速度不变,是一个常数;二是每个排队接水的人都在自己的桶接满了水才走.这样一来,可以明确用大水桶接水的人,接水时间就长,用小水桶接水的人,接水时间就短.经过简单的计算,就可以知道:排队打水的最优化排队方案就是:到水龙头...

求编程好手来! Free Pascal排队接水问题

你快排都写错了……原程序 procedure qsort(v1,v2:longint);var i,j,mid,temp:longint;begin i:=v1; j:=v2; mid:=t[(i+j) div 2];while i&lt;j do begin while t[i]&lt;mid do inc(i);while t[j]&gt;mid do dec(j);if i&lt;=j then begin temp:=t[i];t[i]:=t[j];t[j]:...

有5个人拿着不同的水桶在一个水龙头前排队打水,前面的人接满后离开...

由题意,前面的人接满后离开,后面的人才能继续接水所以有:到水龙头打水的人,打水时间最短的排在前面就可以.从而最短时间为1+(1+1.1)+(1+1.1+1.2)+(1+1.1+1.2+1.5)+(1+1.1+1.2+1.5+1.8)=17.8故选C.

三位学生同时打开了三个水龙头,怎么安排才好?

对于三位学生同时打开三个水龙头的问题,我们可以采用排队接水的方式来解决。假设三位学生的接水需求分别为1分钟、3分钟、4分钟,我们可以按照以下步骤进行:安排1分钟的学生:让1分钟的学生先去接水,其他人等待。安排3分钟的学生:1分钟的学生回来后,让3分钟的学生去接水,剩下的人等待。安排4分钟的...

同学们排队接水,水龙头只有一个,李明接满要8分钟,王华接满要6分钟...

第一个小刚,第二个赵丽,第三个王华,第四个李明。3×4+5×3+6×2+8。=12+15+12+8。=47分钟。加法四个基本操作之一,其余的是减法,乘法和除法。 例如,在下面的图片中,共有三个苹果和两个苹果的组合,共计五个苹果。 该观察结果等同于数学表达式“3 + 2 = 5”,即“3加2等于5”。

有n个人在一个水龙头前排队接水 c语言病人排队问题 排队接水问题 C语言实现学生排队问题 C语言排队购问题 c语言插队问题 排队打水问题 排队取水问题 银行排队c语言
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
部队怎么报考二级建造师 我是部队院校的函授本科,二级建造师考试通过了,注册时不知道有没有问 ... 12年部队转业有二建证书有优势吗 ...20M的电信的网,供给电视和电脑一起用,为什么电视会卡呢?在电脑不... 我是电信4M的,家里装了网络电视。我不开电视也很卡怎么办?尤其是打开... 世界十贵的照相机是什么牌子的? 这个相机值多少钱,是啥牌子的。 NBA全明星MVP次数排行榜 ...从青岛到沂水,想要玩的地方有天上王城,地下大峡谷,彩虹谷,蝴蝶谷等... 剑与远征乱时之境攻略 乱时之境图文通关攻略-新手攻略-安族网_百度... C语言一道水题。。怎么用EOF结束。求高手啊。。 梦见君越两边都蹭得厉害 梦见君越两边都蹭得厉害的预兆 求类似于神书,一书封神这种类型的书 为什么佐助的哥哥鼬要杀了全族? 神道书道书、天经、圣经与神道书的关系 火影中佐助的哥哥为什么要杀死自己的族人和父母? 什么苔藓最好养 龙虎山风景名胜区旅游线路推荐 梦见消灭了狼 梦见终于消灭了什么事物的预兆 遇见喵克斯哪些猫咪最强-猫咪强度排行一览2023 木石鹿豕 名士MOA08592 手表适合哪些人群佩戴? 名士M0A10331 手表适合哪些人群佩戴? 名士8731 腕表适合哪些人群佩戴? 名士MOA10112 腕表的颜值怎么样? 名士克莱斯麦08462 腕表的颜值如何? 名士有什么佩戴起来舒适柔和的手表款式值得分享? 名士有哪些质感很突出并且盘面极致简洁的手表款式? C语言一道编写程序的题 请问,债券基金周末有收益吗? 男生体前屈为什么比女生差 遇见喵克斯喵卷怎么获得 遇见喵克斯水晶怎么获取-水晶获取方法 奥特曼格斗进化3全部人物获取攻略:一网打尽全角色获取方法 遇见喵克斯蝴蝶飞飞怎么获取-蝴蝶飞飞获取方法 奥特曼格斗进化3全人物怎么获得:游戏攻略分享 参加跳舞小组的有120人,比参加唱歌小组的2.5倍还多20人,参加唱歌... 在excel中将已保存的文件以其他名称或类型保存,应单击OFFICE按钮中的... K9127 的站点 K9126次车到永州是否晚点到达 中国在春秋战国时期为何出现了"百家争鸣"的局面?? 考电工证,焊工证,特种作业操作证,上岗证等级证去哪报名,怎么办理 ...我在网上搜搜不到,请问一下这树书面语叫什么! ...其先自范阳徙河南,更为洛阳人。永昌中,武后策贤良方正,诏吏部尚书... 刚刚接到个电话01901203的。说我在上海宝山支行办理一张建设银行卡,现... ...南站坐哪一路车,去舟山沈家门的最后一班车是几点?一般哪个汽车车站离... 秦皇岛706路公交 斗鱼鱼美人抽多少钱抽到炫金雷神永久?