2022蓝桥杯C/C++ A组个人题解

发布于 2022-04-09  428 次阅读


image-20220409194230946

这个题,看着就很简单,先在四周去剪。然后每剪一刀,相当于让剩下的多一份。
傲慢

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n=20,m=22;
    cout<<4+min(m,n)-1+(max(m,n)-1)*min(m,n);
}

image-20220409194438684

模拟了一手,VVVL不知道对不对。

image-20220409194456236

这个题呢,提取公因式的思想呀

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    vector<int> nums(n+1,0);、
    vector<int> sum(n+1,0);
    for(int i =1;i<=n;i++){
        cin>>nums[i];
        sum[i]=sum[i-1]+nums[i];
    }
    long long ans=0;
    for(int i = 1;i<n;i++ ){
        ans+=nums[i]*(sum[n]-sum[i]);
    }
    cout<<ans;
    return 0;
}

image-20220409194718887

这个题呢,主要就是有个规律要知道哦

$$a\oplus b=x$$可以得到$$ a \oplus x=b$$

然后就可以用哈希表去找了呀

#include<bits/stdc++.h>

using namespace std;

int main() {
    int n, m, x;
    cin >> n >> m >> x;
    vector<int> nums(n, 0);
    map<int, vector<int>> mp;
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
        mp[nums[i]].push_back(i + 1);
    }
    int l, r;
    for (int i = 0; i < m; i++) {
        cin >> l >> r;
        bool ans=false;
        for (int j = l - 1; j < r - 1; j++) {
            if (mp.count(nums[j] ^ x) > 0) {
                vector<int> idx = mp[nums[j] ^ x];
                int count = 0;
                for (int k = 0; k < idx.size(); k++) {
                    if (idx[k]>=l&&idx[k]<=r){
                        count++;
                    }
                    if(nums[j]^x!=nums[j]&&count>=1){
                        ans=true;
                    }
                    if(nums[j]^x==nums[j]&&count>=2){
                        ans=true;
                    }
                }
                if(ans){
                    break;
                }
            }
        }
        if(ans){
            cout<<"yes"<<endl;
        }else{
            cout<<"no"<<endl;
        }
    }

    return 0;
}

image-20220409195543881

闹肚子了,代码不写了,下面都是,交的模拟

image-20220409195615787

交的二分

image-20220409195627150

dp+模拟

image-20220409195639420

贪心,哈希表分象限扫的

image-20220409195655012

并不是很会,线段树吗?


不会写珂朵莉树的废柴ACMer