zoukankan      html  css  js  c++  java
  • BZOJ 1034 [ZJOI2008]泡泡堂BNB

    题目链接

    思路

    看到数据规模这么大,还是要求最优解,dp会炸,只能考虑贪心,所以先排序。

    之后,我就想逐位比较,比不过就与下一个比,但是应不应该平就不是很会处理。

    苟且地看了一眼题解,发现可以运用田忌赛马的思想,先看己方最差的是否强于对方最差的,若是,得分。

    再看己方最强的是否强于对方最强的,若是,得分。

    否则就用己方最差的与对方最差的比,输了也不亏。

    最优解处理完了,最差解就是对方最优解的情况,由于总分一定是2*n,减一下就好了。

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdio>
     4 using namespace std;
     5 const int N=100005;
     6 int n,a[N],b[N];
     7 int solve(int a[],int b[])
     8 {
     9     int s1,s2,e1,e2,ans;
    10     s1=s2=1,e1=e2=n,ans=0;
    11     while(s1<=e1&&s2<=e2)
    12     {
    13         if(a[s1]>b[s2])
    14             ans+=2,s1++,s2++;
    15         else if(a[e1]>b[e2])
    16             ans+=2,e1--,e2--;
    17         else
    18         {
    19             if(a[s1]==b[e2])
    20                 ans++;
    21             s1++,e2--;
    22         }
    23     }
    24     return ans;
    25 }
    26 int main()
    27 {
    28     scanf("%d",&n);
    29     for(int i=1;i<=n;i++)
    30         scanf("%d",a+i);
    31     for(int i=1;i<=n;i++)
    32         scanf("%d",b+i);
    33     sort(a+1,a+n+1);
    34     sort(b+1,b+n+1);
    35     printf("%d %d
    ",solve(a,b),2*n-solve(b,a));
    36     return 0;
    37 }
  • 相关阅读:
    babel缓存 非常实用(8)
    source-map 非常实用(7)
    webpack -HMR-非常实用(6)
    eslint 语法检查(5)
    对css 的处理(4)
    python之再学习----简单的字符串
    windows下安装django的具体步骤和各种问题
    Linux常用命令
    转:程序中得到SVN的版本号
    vue实战(1):准备与资料整理
  • 原文地址:https://www.cnblogs.com/fantasquex/p/9379011.html
Copyright © 2011-2022 走看看