Jeanny
寂兮,寥兮,独立不改,周行而不殆

abc369a 369

非常简单的等差数列。分类讨论的重要性!比如 x == y 就只有一种方法

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int x,y;
int main(){
    cin>>x>>y;
    if(x == y)
        cout<<1<<endl;
    else if((x - y) % 2 == 0)
        cout<<3<<endl;
    else
        cout<<2<<endl;
    return 0;
}

 

ABC346C 求和

考察等差数列

一句话题意:给定一个数x,求n个数字在1~x中没有出现过的数字之和。

 

C Count Arithmetic Subarray 计算数学子序列

等差数列

这道题思维难度是有了。。。如果不是放在这个位置,一定会往难了想

最终自己造数据,看样例,找规律,发现性质,如果是非1,2长度的等差数列,一定是一段一段的。

#include<bitsstdc++.h>
#define ll long long
using namespace std;
//最开始想到递归,然后又是递推
//又想到区间dp,因为不能1-2,1-3,1-4,1-5...这样去枚举
//但是,需要存储的信息太多了
//又想到尺取 2个可以推出3个,3个加一个变成4个
//可是数据范围明显需要一个log,这个
//所以没有任何办法记录左右两端...怎么办?
//二分?
//从d出发?
//差分?
//性质?观察规律?
//自己举样例
int cnt = 2, p, n, x, d;
ll sum;
int main(){
    cin>>n;
    //特判一下
    if(n == 1){
        cout<<1<<endl;
        return 0;
    }
    if(n == 2){
        cout<<3<<endl;
        return 0;
    }
    sum += n + n - 1;
    cin>>p>>x;
    d = x - p;
    p = x;
    for(int i = 3; i <= n; i++){
        cin>>x;
        if(x - p == d){//如果存在这个条件,则至少三个
            cnt++;
            cout<<"iii: "<<i<<" "<<d<<" "<<cnt<<endl;
        }
        else{
            sum +=  (1ll + cnt - 2) * (cnt - 2ll) / 2;//有cnt个数凑成等差数列,形成1个和2个的不算
            cnt = 2;//比如5个数,可以凑成5个数的1个序列,4个数的2个序列,3个数的3个序列。即1+2+3
        }
        d = x - p;
        p = x;
    }
    sum += (1ll + cnt - 2) * (cnt - 2ll) / 2;
    cout<<sum<<endl;
    return 0;
}

 

 

 ABC369B 钢琴

一句话题意:分别按照顺序移动左手花费代价+右手花费代价

简单模拟,注意打标记的处理技巧(给第一次出现的数字打标记)

#include<bits/stdc++.h>
using namespace std;
int n,x,sum,lx,rx,al,ar,fl,fr;
char c;
int main(){
    cin>>n;
    for(int i = 1; i <= n; i++){
        cin>>x>>c;
        if(c == 'L'){
            sum += abs(x - lx);
            if(fl == 0) al = x;
            fl = 1;
            lx = x;
        }
        else {
            sum += abs(x - rx);
            if(fr == 0) ar = x;
            fr = 1;
            rx = x;
        }      
    }
    cout<<sum - ar - al<<endl;
    return 0;
}

 

posted on 2024-10-11 15:27  Jeanny  阅读(38)  评论(0)    收藏  举报