zoukankan      html  css  js  c++  java
  • 1351 topcoder 吃点心

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1351

    先按low从大到小贪心再high从小到大贪心

     1 #pragma comment(linker, "/STACK:1024000000,1024000000")
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <sstream>
     6 #include <string>
     7 #include <algorithm>
     8 #include <list>
     9 #include <map>
    10 #include <vector>
    11 #include <queue>
    12 #include <stack>
    13 #include <cmath>
    14 #include <cstdlib>
    15 // #include <conio.h>
    16 using namespace std;
    17 #define clc(a,b) memset(a,b,sizeof(a))
    18 #define inf 0x3f3f3f3f
    19 #define lson l,mid,rt<<1
    20 #define rson mid+1,r,rt<<1|1
    21 const int N=100010;
    22 const int MOD = 1e9+7;
    23 #define LL long long
    24 double const pi = acos(-1);
    25 void fre() {
    26     freopen("in.txt","r",stdin);
    27 }
    28 // inline int r() {
    29 //     int x=0,f=1;char ch=getchar();
    30 //     while(ch>'9'||ch<'0') {if(ch=='-') f=-1;ch=getchar();}
    31 //     while(ch>='0'&&ch<='9') { x=x*10+ch-'0';ch=getchar();}return x*f;
    32 // }
    33 struct  node{
    34      int x,y;    
    35 }p[55];
    36 
    37 bool cmp1(const node &a,const node &b){
    38      return a.x>b.x;
    39 }
    40 
    41 bool cmp2(const node &a,const node &b){
    42      return a.y<b.y;
    43 }
    44 
    45 int main(){
    46     // fre();
    47     int T;
    48     scanf("%d",&T);
    49     while(T--){
    50          int n,c,x;
    51          scanf("%d%d%d",&n,&c,&x);
    52          for(int i=0;i<n;i++){
    53              scanf("%d%d",&p[i].x,&p[i].y);
    54          } 
    55          sort(p,p+n,cmp1);
    56          int sum=0,ans1=0;
    57          for(int i=0;i<n;i++){
    58              if(sum<x)
    59                  ans1++,sum+=p[i].x;
    60              else
    61                 break;
    62          }
    63          int ans2=n;
    64          sort(p,p+n,cmp2);
    65          for(int i=0;i<n;i++){
    66              if(c-p[i].y>=x){
    67                 ans2--,c-=p[i].y;
    68              }
    69              else
    70                 break;
    71          }
    72          printf("%d
    ",min(ans1,ans2));
    73     }
    74     return 0;
    75 }
  • 相关阅读:
    kioptrix-1
    4.4 CSRF
    upload-labs 练习笔记
    4.3 XSS
    外国人是怎样读编程书的呢?
    如何快速学习新语言
    Go开发环境配置
    Golang Package I
    MVC模式小结
    Flask基础知识
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5615612.html
Copyright © 2011-2022 走看看