Re:请大家指出各种问题!

[复制链接]
查看11 | 回复0 | 2021-1-29 05:14:33 | 显示全部楼层 |阅读模式
修改后的程序见附件
#includeiostream#includecmathusingnamespacestd;intmain(){intN,D,K;intcows,max=0;cinNDK;intcount[1000];booldisease[1000][15]={false};intt,i,j;for(i=0;iN;i++){cincount;for(j=0;jcount;j++){//countdiseasesofacowcint;disease[t]=true;~~~~~~~~~~~~~~~~~~~~~~~~~~~`题目中给定的diseases范围是1到D,而你的程序把这个范围当作0到D-1做的,所以这里应该改为disease[t-1]=true}}//step1:chooseKdiseasesfromDdiseasesintchosen,chosenMax=pow(2,D)-pow(2,D-K);//chosenisanintegerfrommintomaxintKcounter;//count1ofchosenintchosen2;for(chosen=pow(2,K)-1;chosen=chosenMax;chosen++){Kcounter=0;chosen2=chosen;for(i=0;iD;i++){if(chosen21)Kcounter++;//ifthelastdigitofchosenis1,Kcounter++chosen2=chosen21;//preparetoseenextdigit}if(Kcounter!=K)continue;//chosen=6;//step2:Kdiseaseschosen,checkthecowscows=0;for(i=0;iN;i++){if(countK)continue;for(j=0;jD;j++){if((chosen(D-1-j))1)continue;if(disease[j]==true)break;/*cows++;*/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cows++的位置不对,应该在循环外,并且前提是没有break出循环}if(j=D)cows++;/*应该在这里*/}if(maxcows)max=cows;//findthemaximumofcowsunderdifferentchosenKdiseases.}///*coutcowsendl;*/~~~~~~~~~~~~~~~~~`输出max而不是cowscoutmaxendl;return0;}

ACD (心強) 在 ta 的帖子中提到:我难受死了想砸了电脑然后自杀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行