问题标题: 酷町堂:1266

0
0
已解决
崔子周
崔子周
高级天翼
高级天翼

题目链接: 酷町堂:1266

求思路和核心伪代码

WA0

#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<string>
#include<set>
#include<cstring>
#include<map>
#include<sstream>
using namespace std;
int n,h,l,x,cnt;
struct q{
    int a,b,c;
}a[10005];
bool cmp(q d,q e){
    if(d.a!=d.b){
        return d.a>d.b;
    }
    return e.a>e.b;

int main(){
    cin>>h>>l>>n>>x;
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){
        cin>>a[i].b>>a[i].c;
        cnt++;
        a[i].c--;
        if(a[i].c==0){
            break;
        }
    }
    cout<<cnt;
    return 0;
}


0
已采纳
潘登
潘登
高级天翼
高级天翼

1266 摘取苹果2

分析: 摘苹果花的总力气是有限的,因此我们希望每次花尽量小的力气摘苹果,则自然想到按照摘苹果花的力气从小到大排个序。但是摘苹果的时候还要考虑到高度,排序的时候要把每个苹果的高度也带上,所以我们考虑使用结构体排序,将摘苹果花的力气和苹果的高度作为结构体成员变量。

按所花力气从小到大排好序后,我们只要按顺序尝试摘每个苹果(能摘就摘):如果当前的苹果高度能够达到并且剩的力气还够摘就摘。

0
我要回答