B. Box Fitting
程序员文章站
2024-03-14 18:32:22
...
题意:
现在有n个长方形,宽均为1,现在有一个底为m的容器,问将长方形放入其中,所用容器的最小宽度是多少
(长方形必须长朝下放置详细如图)
题解:
比赛时脑子抽了。。。
我想的是,先排序,对于第一层依次放长的,如果长的放不下就依次放短的,我想的是让短的取填空隙,但是wa了我也不知道为啥
今天补题,感觉每次只需要找仅小于当前长度的长方形即可
这样放就是尽可能放大的,实在放不了大的再开新一层
代码:
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);
return s*w;
}
const int maxn=1e5+9;
int a[maxn];
vector<int>vec;
int main()
{
int t;
cin>>t;
while(t--){
ll n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
vec.push_back(x);
}
sort(vec.begin(),vec.end());
ll num=m;
int tot=0;
while(vec.size())
{
int pos=upper_bound(vec.begin(),vec.end(),num)-vec.begin();
pos--;
if(pos==-1)
{
num=m;
tot++;
continue;
}
else
{
num-=vec[pos];
vec.erase(vec.begin()+pos);
continue;
}
}
cout<<tot+1<<endl;
}
return 0;
}
上一篇: 使用反射来获取泛型信息
下一篇: 关于泛型的一些问题
推荐阅读
-
B. Box Fitting
-
reverse-box 攻防世界
-
CSS中box(盒模式)的分析
-
Codeforces Round #449 (Div. 2) B. Chtholly's request (思维
-
CSS中box(盒模式)的分析
-
Codefores Round #263 (div2) B. Appleman and Card Game
-
Codeforces Round #254 (Div. 2)B. DZY Loves Chemistry
-
利器OSW (OSWatcher Black Box) 之简介篇
-
利器OSW (OSWatcher Black Box) 之简介篇
-
浅谈 css3 box盒子模型以及box-flex的使用_html/css_WEB-ITnose