zoukankan      html  css  js  c++  java
  • uvalive3971(二分)

    题目连接:https://vjudge.net/problem/UVALive-3971

     1 #include<cstdio>
     2 #include<string>
     3 #include<vector>
     4 #include<map>
     5 using namespace std;
     6 const int maxn=1010;
     7 int n,b;
     8 
     9 int cnt;
    10 map<string,int> id;
    11 struct node
    12 {
    13     int p,q;
    14 };
    15 vector<node> cat[maxn];
    16 int ID(string s)
    17 {
    18     if(!id.count(s)) id[s]=cnt++;
    19     return id[s];
    20 }
    21 bool ok(int rq)
    22 {
    23     int sum=0;
    24     for(int i=0;i<cnt;i++)
    25     {
    26         int cheapest=b+1,m=cat[i].size();
    27         for(int j=0;j<m;j++)
    28             if(cat[i][j].q>=rq) cheapest=min(cheapest,cat[i][j].p);
    29         if(cheapest==b+1) return 0;
    30         sum+=cheapest;
    31         if(sum>b) return 0;
    32     }
    33     return 1;
    34 }
    35 
    36 int main()
    37 {
    38     int t;
    39     scanf("%d",&t);
    40     while(t--)
    41     {
    42         scanf("%d%d",&n,&b);
    43         cnt=0;
    44         for(int i=0;i<n;i++) cat[i].clear();
    45         id.clear();
    46         int maxq=0;
    47         for(int i=0;i<n;i++)
    48         {
    49             char type[30],name[30];
    50             int p,q;
    51             scanf("%s%s%d%d",type,name,&p,&q);
    52             maxq=max(maxq,q);
    53             cat[ID(type)].push_back(node{p,q});
    54         }
    55         int L=0,R=maxq;
    56         while(L<R)   //
    57         {
    58             int M=L+(R-L+1)/2;
    59             if(ok(M)) L=M;
    60             else R=M-1;
    61         }
    62         printf("%d
    ",L);
    63     }
    64 
    65 }
  • 相关阅读:
    Ajax 一
    Ajax
    回调函数2
    回调函数
    mysql_fetch_row mysql_fetch_array
    几款主流PHP框架的优缺点评比
    关于PHP 7你必须知道的五件事
    10个实用的PHP正则表达式
    PHP实现四种基本排序算法
    10个最佳的PHP图像操作库
  • 原文地址:https://www.cnblogs.com/yijiull/p/6725641.html
Copyright © 2011-2022 走看看