当长度(重量)相同时就按照重量(长度)排,
从大到小或从小到大都可以!这里我懂的,没有问题!
排序之后,问题就可以简化,(假设按照长度不等时长度排,
长度等是按照重量排,我假设按照从大到小来排!)即求排序
后的所有的重量值最少能表示成几个集合。长度就不用再管了,
木棍就满足条件!*/
#include
#include
#include
using namespace std; #define maxn 5010 struct node{ int l,w; }stk[maxn]; bool cmp(node y,node x){ if(x.l
=stk[i].l&&stk[j].w>=stk[i].w&&!visit[j]) visit[j]=1,stk[i].l=stk[j].l,stk[i].w=stk[j].w; sum++; //这个循环是重点。 } } printf(%d ,sum); } return 0; }
?