题:1。有1000(N)个玩具(具有属性)。2.从中找出符合条件的5个(5个为一组),要求找到的组合最多。
比如有玩具1,2,3,4,5,6……1000,需要的结果是:1,2,3,4,5;6,7,8,9,10;……
1000个找5个的最大组是20;现在就是求算法;谢谢各位啊赐教!
比如有玩具1,2,3,4,5,6……1000,需要的结果是:1,2,3,4,5;6,7,8,9,10;……
1000个找5个的最大组是20;现在就是求算法;谢谢各位啊赐教!
int num2=0;
int num3=0;
int num4=0;
int numMin=0;int[] nums = new int[1000];for(int i=0;i<1000;i++)
{
if(num[i]>numMin)
{
num4=numMin;
num3=num4;
num2=num3;
numMax=num2;
numMin=num[i];
}
}
{
if (l == 5)
{
total++;
} for (int i = bi; i < max; i++)
{
if (l + 1 <= 5 && n + toys[i] <= 200)
{
ftoys[l] = toys[i];
count(n + toys[i], l + 1, toys, i + 1, max);
}
}
}
题:1。有1000(N)个玩具(具有属性)。2.每个玩具都有价格(价格有相同的也有不同的)。
3。 5个一组打包,条件是选择的5个玩具的“总价格”180-200之间。(>=180,<=200)
4。问如何打最多的包。
拿10个来举例吧。玩具的价格分别是 编号1到10(34,35,36,37,38,40,41,42,43,44)
结果1:(34,35,36,37,38)=180符合.剩下的就不行了。
结果2:(34,35,43,44,40)=196;(36,37,38,41,42)=194这两个都符合,得到最大组(但不一定是最优组)
这下该明白了吧;
看看大家有没有设计思路
int[] toys = new int[1000];
int total = 0;
int[] ftoys = new int[5]; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ }
} private void count(int n,int l,int[] toys,int bi,int max)
{
if (l == 5 && n>=180)
{
total++;
//for (int j = 0; j < 5; j++) { Response.Write(ftoys[j].ToString() + "+"); }
//Response.Write("=" + n.ToString() + "<br/>");
} for (int i = bi; i < max; i++)
{
if (l + 1 <= 5 && n + toys[i] <= 200)
{
ftoys[l] = toys[i];
count(n + toys[i], l + 1, toys, i + 1, max);
}
else
{
break;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Random ro = new Random();
int ml = int.Parse(this.TextBox1.Text);
for (int i = 0; i < ml; i++)
{
toys[i] = ro.Next(100);
//toys[i] = i;
Response.Write(toys[i].ToString() + ",");
}
Response.Write("<br/>"); for (int i = ml-1; i >=0; i--)
{
int min = toys[0];
int maxp = 0;
for (int j = 1; j <= i; j++)
{
if (min < toys[j]) { min = toys[j]; maxp = j; }
}
int tem = toys[i];
toys[i] = min;
toys[maxp] = tem;
} for (int i = 0; i < ml; i++)
{
Response.Write(toys[i].ToString() + ",");
}
count(0, 0, toys, 0, ml);
Response.Write("<br/>");
Response.Write(total.ToString());
}
</script>
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
</form>
</body>
</html>