贪心10.24assassin

Posted antiquality

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贪心10.24assassin相关的知识,希望对你有一定的参考价值。

 

技术分享图片


题目分析

没有题目分析……

寄存一下神奇反悔贪心

 1 #include<bits/stdc++.h>
 2 const int maxn = 100035;
 3 
 4 struct node
 5 {
 6     int a,b;
 7     node(int x=0, int y=0):a(x),b(y) {}
 8     bool operator < (node x) const
 9     {
10         return a < x.a;
11     }
12 }a[maxn],b[maxn];
13 int T,n,m,mn,tot;
14 int mx,ans,cnt1,cnt2;
15 
16 int read()
17 {
18     char ch = getchar();
19     int num = 0;
20     bool fl = 0;
21     for (; !isdigit(ch); ch=getchar())
22         if (ch==-) fl = 1;
23     for (; isdigit(ch); ch=getchar())
24         num = (num<<1)+(num<<3)+ch-48;
25     if (fl) num = -num;
26     return num;
27 }
28 int main()
29 {
30     freopen("assassin.in","r",stdin);
31     freopen("assassin.out","w",stdout);
32     T = read();
33     while (T--)
34     {
35         n = read(), m = read();
36         cnt1 = cnt2 = mx = ans = tot = 0, mn = m+1;
37         for (int i=1; i<=n; i++)
38         {
39             int x = read(), y = read();
40             if (y) a[++cnt1] = node(x, y), mn = std::min(mn, x), tot += y;
41             else b[++cnt2] = node(x, y);
42         }
43         std::sort(a+1, a+cnt1+1);
44         std::sort(b+1, b+cnt2+1);
45         if (m >= mn){
46             mx = tot+1, ans = mn;
47             if (mx >= n){
48                 printf("%d %d
",n,mn);
49                 continue;
50             }
51             cnt2 -= mx-cnt1;
52             for (int i=2; i<=cnt1; i++) b[++cnt2] = a[i];
53             std::sort(b+1, b+cnt2+1);
54             for (int i=1; i<=cnt2&&mx<n; i++)
55                 if (ans+b[i].a <= m) mx++, ans += b[i].a;
56                 else break;
57             printf("%d %d
",mx,ans);
58         }else{
59             mx = 0;
60             for (int i=1; i<=cnt2; i++)
61                 if (b[i].a <= m) m -= b[i].a, mx++, ans += b[i].a;
62             printf("%d %d
",mx,ans);
63         }
64     }
65     return 0;
66 }

 

 

END

以上是关于贪心10.24assassin的主要内容,如果未能解决你的问题,请参考以下文章

HDU4415 Assassin’s Creed

HDU 4415 - Assassin’s Creed

第三次作业 史浩然 -assassin Talon

贪心算法:划分字母区间

动作刺客信条2血系-Assassins Creed Lineage

上周热点回顾(10.24-10.30)