- 吴浩宁 的博客
7.9
- @ 2024-7-9 21:59:48
T1 小田的消消乐游戏
总结
部分拿分, ,我当时的思路是从后往前遍历数组,找到能删除最多数的方案,但是这样可能拆散正确答案中的删除组合,所以没有实现,拿了部分分。
错误:没有考虑整体的正解,而是只关注了每一次操作时删除的数的数量,也就是说我从一开始就在想拿部分分的解法,用局部最优的思考方式来思考全局最优。
题解
典型的分情况讨论:
- 数组头尾一样
直接输出
1。 - 数组头尾不一样
- 遍历数组,找到了符合下面条件的 ,输出
2。 - 没找到,输出
-1。 条件:
- 遍历数组,找到了符合下面条件的 ,输出
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+5;
int n,x[N];
signed main(){
freopen("num.in","r",stdin);
freopen("num.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i];
if(x[1]==x[n] and n>1){
cout<<1;
return 0;
}
else {
for(int i=2;i<n-1;i++){
if(x[i]==x[1] and x[i+1]==x[n]){
cout<<2;
return 0;
}
}
}
cout<<-1;
return 0;
}
未完