[ZJOI2008]泡泡堂

Description

BZOJ1034

Solution

一个很直接的思路是每个人干掉比他小的最大的那个,否则就换掉对方最大的,这样才值。然而,直接实现这个思路十分复杂,所以有一种替代的模拟思路,本质上是一样的。

Code

int work(int *a, int *b) { // a,b有序
    int ans = 0, l = 1, r = n, L = 1, R = n;
    while (l <= r) {
        if (a[r] > b[R]) {
            ans += 2;
            r--;
            R--;
        } else if (a[l] > b[L]) {
            ans += 2;
            l++;
            L++;
        } else {
            ans += (a[l] == b[R]);
            l++;
            R--;
        }
    }
    return ans;
}

Note

这个题我其实想出了贪心思路,但是由于经验不足,无法写出实现简单的码,还是要多做题,提升码力。

转载于:https://www.cnblogs.com/wyxwyx/p/bzoj1034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值