笨方法,没有什么递推公式,模拟人脑
[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; }