笨方法,没有什么递推公式,模拟人脑

[SCOI2005]扫雷MINE

https://ac.nowcoder.com/acm/problem/20241

#include<iostream>
#include<vector>

using namespace std;

bool test(int temp,vector<int> a){
    int n = a.size(),sum = temp,temp2;
    for(int i = 0;i < n;i++){
        if(i == n -1 && sum != a[i]) return false;

        if( sum == a[i]) temp2 = 0;
        else if(sum < a[i]) temp2 = 1;
        sum = sum + temp2;
        if(sum != a[i]) return false;

        if(i) {
            int t = sum - temp - temp2;
            sum = sum - temp;
            temp = t;
        }
    }
    return true;
}

int main(){
    int n;cin>>n;
    vector<int> a(n);
    for(int i = 0; i < n; i++) cin>>a[i];
    int cnt = 0;
    if(test(1,a)) cnt++;
    if(test(0,a)) cnt++;
    cout<<cnt<<endl;
    return 0;
}
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务