求助一道贪心水题
  • 板块灌水区
  • 楼主Jackhong9
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/8 11:19
  • 上次更新2023/11/8 11:22:59
查看原帖
求助一道贪心水题
820427
Jackhong9楼主2023/11/8 11:19

一道洛谷上面的题目CF245C Game with Coins

陷入逻辑里面出不来了

#include<bits/stdc++.h>
using namespace std;
int ans, n;
int a[1005];
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    if (n == 1 || n % 2 == 0) {
        cout << -1;
        return 0;
    }
//  下面是我写的代码,ac不了,不知道哪种情况没考虑
//    for (int i = n; i >= 1; i--) {
//        if(a[i]) {
//            ans += a[i];
//            a[i / 2] = 0;
//            a[i] = 0;
//            a[i-1] = 0;
//        }
//    }
  //下面是能通过的代码
    for (int i = n; i >= 1; i--) {
        if(a[i]>0) {
            ans += a[i];
            a[i / 2]-=a[i];
            if(i % 2 == 0) a[i+1]-=a[i];
            else a[i-1]-=a[i];
        }
    }
    cout << ans;
    return 0;
}
2023/11/8 11:19
加载中...