問題への羅区CF402Aナッツソリューション

問題のこのこんにゃく溶液を再びそれを作りました!

このタイトルは、紫色の質問ですか?

まあ、悪意のあるスコアはヒトデできますか?

トピックに戻ります

この質問は明らかに貪欲ああです。

間隔にXバッフルナットA、Bのバッフル、Vアップがあります。

だから、私たちの戦略は貪欲です:

合計より少ないバッフルを使用するよりもである場合、X、Kおよびボックスの現在の数より少ないです。

したがって、この場合には、それはより大きくなるまで増加し続けるだろう、水は非常に右です。

直接(A詳細なコードを見て:

#include<bits/stdc++.h>
using namespace std;

int a, b, k, v, sum, ans;
//a, b, k, v如题,sum是当前箱子的区间数,ans 是箱子的个数 
int main()
{
scanf("%d%d%d%d", &k, &a, &b, &v);//输入k, a, b, v; 
while(true)//有点皮,不过就是这么写的 
{
if(a <= 0)//如果坚果装够了,那就跳出。 
break;
sum = 1;//最开始的每个箱子中都有一个区间 
while(b > 0)//如果还有隔板 
if(sum < k)//且这个箱子中区间的个数小于k 
{
++ sum;//区间个数加加 
-- b;//隔板数目减减 
}
else
break;//如果没隔板了就退出 
a -= sum * v;//坚果的个数要减去这个箱子中的区间的个数 乘上 最大坚果量的个数
//莫非你一个区间内可以装v个,你却只装1个,还是v - 1个? 
++ ans;//统计箱子个数; 
}
printf("%d", ans);//输出啦 
return 0;
}

このこんにゃくとダブルチーズ李は原爆を強化しました

おすすめ

転載: www.cnblogs.com/Flash-plus/p/12028329.html