BZOJ 1034 [ZJOI2008]泡泡堂BNB

贪心。和田忌赛马差不多。但是更简单一些。

最强的能赢就赢,最弱的能赢就赢,其他情况用最弱的拼对方最强的,感性想是这样的。。

 

View Code
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <cstdlib>
 5 #include <algorithm>
 6  
 7 #define N 200000
 8  
 9 using namespace std;
10  
11 int n;
12 long long a[N],b[N];
13  
14 inline void read()
15 {
16     scanf("%d",&n);
17     for(int i=1;i<=n;i++)
18         scanf("%lld",&a[i]);
19     for(int i=1;i<=n;i++)
20         scanf("%lld",&b[i]);
21     sort(a+1,a+1+n);
22     sort(b+1,b+1+n);
23 }
24 
25 inline long long getans(long long *a,long long *b)
26 {
27     long long ans=0;
28     int h=1,t=n;
29     int h1=1,t1=n;
30     while(h<=t)
31     {
32         if(a[h]>b[h1]) ans+=2,h++,h1++;
33         else if(a[t]>b[t1]) ans+=2,t--,t1--;
34         else
35         {
36             if(a[h]==b[t1]) ans+=1;
37             h++,t1--;
38         }
39     }
40     return ans;
41 }
42 
43 inline void go()
44 {
45     printf("%lld %lld\n",getans(a,b),2*n-getans(b,a));
46 }
47  
48 int main()
49 {
50     read();
51     go();
52     return 0;
53 }

 

 

posted @ 2013-01-18 23:01  proverbs  阅读(791)  评论(0编辑  收藏  举报