【HDOJ6335】Nothing is Impossible(贪心)

题意:

有n道题目m个人,每道题目有1个正确选项和a[i]个错误选项,每个人每道题只能选一个选项

求出最坏情况下分数最多的人至少能拿到几分

n<=1e2,m<=1e9,1<=b[i]<=1e2

思路:

 

 

 1 #include <stdio.h>
 2 #include <vector>
 3 #include <algorithm>
 4 #include <string.h>
 5 #include <limits.h>
 6 #include <string>
 7 #include <iostream>
 8 #include <queue>
 9 #include <math.h>
10 #include <stack>
11 #include <map>
12 #define left (now<<1)
13 #define right ((now<<1)+1)
14 #define mid ((l+r)>>1)
15 using namespace std;
16 typedef long long int lint;
17 
18 const int MAXN = 1e2 + 10;
19 
20 lint a[MAXN],n,m;
21 
22 int main(){
23     int t; scanf("%d",&t);
24     while(t--){
25         scanf("%d%d",&n,&m);
26         for(int i = 1; i <= n; ++i){
27             lint b; scanf("%I64d%I64d",&b,&a[i]);
28         }
29         sort(a,a+1+n); lint k = 1; lint ans = 0;
30         for(int i = 1; i <= n; ++i){
31             k *= 1 + a[i];
32             if(m > k){
33                 ++ans;
34             }else{
35                 break;
36             }
37         }
38         printf("%d\n",ans);
39     }
40     return 0;
41 }

 

posted on 2018-08-02 13:04  myx12345  阅读(235)  评论(0编辑  收藏  举报

导航