zoukankan      html  css  js  c++  java
  • Codeforces Round #481 (Div. 3) D. Almost Arithmetic Progression (暴力)

    • 题意:有一个长度为\(n\)的序列,可以对所有元素++或--,求最少的操作次数,如果无论如何都不能构成,则输出\(-1\).

    • 题解:一个等差数列一定由首项\(a_{1}\)和公差\(d\)来决定,而这两项可以有\(a_{1}\)\(a_{2}\)来决定,所以我们可以直接暴力枚举\(a[1]\)\(a[2]\),一共\(9\)种情况,每次向后枚举,判断每个位置上的数是否能得到,然后更新最小值即可.

    • 代码:

      #include <iostream>
      #include <cstdio>
      #include <cstring>
      #include <cmath>
      #include <algorithm>
      #include <stack>
      #include <queue>
      #include <vector>
      #include <map>
      #include <set>
      #include <unordered_set>
      #include <unordered_map>
      #define ll long long
      #define fi first
      #define se second
      #define pb push_back
      #define me memset
      const int N = 1e6 + 10;
      const int mod = 1e9 + 7;
      const int INF = 0x3f3f3f3f;
      using namespace std;
      typedef pair<int,int> PII;
      typedef pair<long,long> PLL;
       
      int n;
      int d;
      int a[N],b[N];
       
      int main() {
          ios::sync_with_stdio(false);cin.tie(0);
          cin>>n;
           for(int i=1;i<=n;++i) cin>>a[i];
       
           int ans=INF;
           for(int i=-1;i<=1;++i){
               for(int j=-1;j<=1;++j){
                   b[1]=a[1]+i;
                   b[2]=a[2]+j;
                   d=b[2]-b[1];
                   bool ok=1;
                   int cnt=abs(i)+abs(j);
                   for(int k=3;k<=n;++k){
                       b[k]=b[k-1]+d;
                       if(abs(b[k]-a[k])>1){
                        ok=0;
                        break;
                       }
                       else if(b[k]!=a[k]) cnt++;
                   }
                   if(ok)
                   ans=min(ans,cnt);
               }
           }
           if(ans==INF) puts("-1");
           else printf("%d\n",ans);
       
          return 0;
      }
      
  • 相关阅读:
    three.js模型
    three.js贴图
    three.js材质
    three.js自定义形状
    border
    虚拟主机Dede程序安装
    万网虚拟主机目录
    ConcurrentHashMap
    Oracle中select使用别名
    单例模式
  • 原文地址:https://www.cnblogs.com/lr599909928/p/12934725.html
Copyright © 2011-2022 走看看