社区讨论

84分,为毛快排会超时?

P2676[USACO07DEC] Bookshelf B参与者 7已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mi6h06ci
此快照首次捕获于
2025/11/20 04:44
4 个月前
此快照最后确认于
2025/11/20 04:44
4 个月前
查看原帖
CPP
#include<stdio.h>
#include<stdlib.h>
int h[20002];
int temp,i,j,t;
//从大到小快速排序  
void quicksort(int left,int right){
    if(left>right)
        return;
    temp=h[left];
    i=left;
    j=right;
    while(i!=j){
        while(h[j]<=temp&&i!=j){
            j--;
        }
        while(h[i]>=temp&&i!=j){
            i++;
    }
        if(i<j){
            t=h[i];
            h[i]=h[j];
            h[j]=t;
        }
    }
    h[left]=h[i];
    h[i]=temp;
    quicksort(left,i-1);
    quicksort(i+1,right);
    return;
}
int main(){
    int n,s,b;
    scanf("%d",&n);
    scanf("%d",&b);
    for(i=1;i<=n;i++){
        scanf("%d",&h[i]);
    }
    quicksort(1,n);
    s=0;
//连加直到大于b 
    for(i=1;i<=n;i++){
        s=s+h[i];
        if(s>=b){
            printf("%d",i);
            break;
        }
    }
    system("pause");
    return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...