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 }

 

 

你可能感兴趣的:(2008)