zoukankan      html  css  js  c++  java
  • codeforce978C-Almost Arithmetic Progression+暴力,枚举前两个数字的情况

    传送门:http://codeforces.com/contest/978/problem/D

    题意:求变为等差数列,最小要改动的数字个数;

    思路:暴力,这道题只用枚举前面两个数字的情况就ok,反思自己在看到这道题的时候各种找规律。

    复杂的是3*3*n,我看到群里说的复杂度,内心才恍然大悟。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <string>
    #include <vector>
    #include <map>
    #include <set>
    #include <queue>
    #include <list>
    #include <iterator>
    #include <cmath>
    using namespace std;
    
    #define lson (l , mid , rt << 1)
    #define rson (mid + 1 , r , rt << 1 | 1)
    #define debug(x) cerr << #x << " = " << x << "
    ";
    #define pb push_back
    
    typedef long long ll;
    
    /*-----------------show time----------------*/
    
    const int maxn = 1e5+9;
    int n;
    ll a[maxn];
    ll abb(ll x)
    {
        return x>0?x:-x;
    }
    int main(){
        scanf("%d",&n);
        for(int i=1; i<=n; ++i)
        {
            scanf("%lld", &a[i]);
        }
        int ans = n+1;
        for(int u = -1; u<=1; u++)
        {
            for(int v=-1; v<=1; v++)
            {
                ll tmp = a[2]+v - (a[1] + u);
                int flag = 1,cnt = 0;
                if(u!=0)cnt++;
                if(v!=0)cnt++;
                for(int i=3; i<=n; i++)
                {
                    if(abb(a[i] - (a[1]+u + (i-1)*tmp))>1)
                    {
                        flag = 0;
                        break;
                    }
                    else if(a[i] - (a[1]+u + (i-1)*tmp)!=0){
                        cnt++;
                    }
                }
                if(flag)ans = min(ans,cnt);
            }
        }
        if(ans==n+1)puts("-1");
        else printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    Screen-后台运行
    Env:ctags和Taglist安装与配置
    Env:Cscope安装与配置
    Env:VIM配置
    Env:zsh和fish安装和使用
    UIWebView与JS的深度交互-b
    利用Multipeer Connectivity框架进行WiFi传输-b
    iOS上绘制自然的签名-b
    1行代码为每个Controller自定义“TabBar”-b
    视频边下边播--缓存播放数据流-b
  • 原文地址:https://www.cnblogs.com/ckxkexing/p/9033832.html
Copyright © 2011-2022 走看看