20210649zrj @ 2022-10-28 13:30:11
RT,求调
#include<bits/stdc++.h>
using namespace std;
struct node{int x,y;}a[50000];
int cmp(node a1,node b1)
{
if(a1.y<=b1.y)
return a1.y<b1.y;
return a1.y>b1.y;
}
int main()
{
int n,s;scanf("%d%d",&n,&s);int num,ans;scanf("%d%d",&num,&ans);
int m=num+ans;
int x=0 ;
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++)
{
if(a[i].x>m||m==0)
break;
if(a[i].y<=s&&a[i].x<=m)
{
s-=a[i].y;
x++;
}
}
printf("%d",x);
return 0;
}
by docxjun @ 2022-10-28 14:30:51
int cmp(node a1,node b1)
{
if(a1.y<=b1.y)
return a1.y<b1.y;
return a1.y>b1.y;
}
这一段写的有问题
有没有一种可能return那一行是按照x排(
参考:
bool cmp1(info a,info b)
{
return a.H<b.H;
}
bool cmp2(info a,info b)
{
return a.S<b.S;
}
这个是我写的
by docxjun @ 2022-10-28 14:31:59
思路:如果加上椅子也够不到就删掉不考虑
之后按花费贪心