#include<iostream>
using namespace std;
//*****************算法变量************************//
const int Max=20;
int InputNum;//输入N值;
int InputArray[Max];//输入的颜料数目
int GrayNum;//灰色颜料的数量
int ColorNum;//需要的颜料盒数
//完成排序
inline void Swap(int Array[],int i,int j)
{
int temp=Array[i];
Array[i]=Array[j];
Array[j]=temp;
}
void Sort(int Array[],int Size)
{
int i,j;
for(i=1;i<Size;i++)
{
for(j=Size-1;j>=i;j--)
{
if(Array[j]>Array[j-1])
Swap(Array,j,j-1);
}
}
}
int main()
{
while(true)
{
ColorNum=0;//谨记每次都要初始化
scanf("%d",&InputNum);
if(InputNum==0)
{ return 0;}
for(int i=0;i<InputNum;i++)
{ scanf("%d",&InputArray[i]);}
scanf("%d",&GrayNum);
Sort(InputArray,InputNum);
//从所需其他颜色的最大值计算份数
if(InputArray[0]!=0)//要考虑到都是0的情况
{ ColorNum=(InputArray[0]+49)/50;}
for(int i=0;i<InputNum;i++)
{InputArray[i]=50*ColorNum-InputArray[i];}
//调制灰色;按1ml递增来调制
for(int i=1;i<=GrayNum;i++)
{
Sort(InputArray,InputNum);
if(
POJ 2709 贪心算法 测试数据生成程序
最新推荐文章于 2022-12-04 07:55:00 发布
该博客介绍了如何使用贪心算法解决POJ 2709问题,强调每次循环中初始化结果的重要性。算法思路是首先根据纯色颜料的最大量确定最少颜料盒数,然后逐次用剩余颜料配制gray,每次从大到小排序,减少1ml颜料生成1mlgray。博主分享了通过自动生成测试数据来检查代码正确性的经验,并提供了生成随机数和测试代码的示例。

最低0.47元/天 解锁文章
309

被折叠的 条评论
为什么被折叠?



