zoukankan      html  css  js  c++  java
  • UVA 1149 Bin Packing

    题意:

      给定n个物品的重量,无限个容量为m的箱子,每个箱子最多装两个物品,要把所有的物品都装下,最少需要多少个箱子。

    分析:

      每次将最重和最轻的两个物品放到一个箱子里,如果装不下,则将最重的单独装到一个箱子里。

    代码:

      

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int dist[101][101];
    int maxn=100000001;
    int main()
    {
    int a,b,n,cas=1;
    while(~scanf("%d%d",&a,&b)&&a+b)
    {
    int i,j,k;
    for(i=0;i<101;i++)
    for(j=0;j<101;j++)
    dist[i][j]=maxn;
    for(i=0;i<101;i++)
    dist[i][i]=0;
    n=0;
    dist[a][b]=1;
    if(a>n)
    n=a;
    if(b>n)
    n=b;
    while(~scanf("%d%d",&a,&b)&&a+b)
    {
    dist[a][b]=1;
    if(a>n)
    n=a;
    if(b>n)
    n=b;
    }
    for(k=1;k<=n;k++)
    {
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    {
    if(dist[i][j]>dist[i][k]+dist[k][j])
    dist[i][j]=dist[i][k]+dist[k][j];
    }
    }
    }
    int count=0,sum=0;
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    {
    if(dist[i][j]<maxn&&dist[i][j])
    {
    sum+=dist[i][j];
    count++;
    }
    }
    }
    //cout<<sum<<endl;
    printf("Case %d: ",cas++);
    printf("average length between pages = %.3lf clicks ",1.0*sum/count);
    }
    }
  • 相关阅读:
    Photoshop操作指南
    Photoshop操作指南
    财经法规四-2
    财经法规四-1
    财经法规三-3
    财经法规复习三-2
    财经法规复习三-1
    财经法规复习卷一-2
    财经法规二-3
    财经法规二-2
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4928574.html
Copyright © 2011-2022 走看看