定制架子问题
【题目描述】
李莳花要做一个架子,把她喜欢的摆件叠放起来,她的每个摆件的位置顺序是固定的。这个架子的宽度是 W,每层排放的摆件不能超过这个宽度,每层架子的高度不能低于最高的摆件的高度。假设,给出排列好的每个摆件的宽度Wi,和高度Hi,请计算需要最少多高的架子。
【输入格式】
输入的第一行有 2 个数字,一个是摆件的个数 n,和架子的宽度W。以下摆件个数 n 行,每行的第一个数是摆件的宽度 Wi和高度Hi。【输出格式】
输出放置摆件架子的最低高度。
【样例输入】(测试数据不包含本样例)
5 5
2 1
1 2
1 3
2 3
2 2
【样例输出】
5
请教高人思路,歇半天没写对
这个问题你没有给出题目的数据量级,那我就默认使用贪心算法来解决。贪心算法在这个问题中的时间复杂度为O(nlogn),其中n是摆件的数量。首先,我们需要按照摆件的高度进行排序。
按照以下步骤进行摆放:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
if(n==2||n==3)
{
cout<<"是素数";
}
else if(n%6!=1&&n%6!=5)
{
cout<<"不是素数";
}
else
{
for(int i=2;i*i<=n;i++)
{
if(!(n%i))
{
cout<<"不是素数" ;
return 0;
}
}
cout<<"是素数";
}
}