首页 > 其他分享 >【CodeForces训练记录】Codeforces Round 1000 (Div. 2)

【CodeForces训练记录】Codeforces Round 1000 (Div. 2)

时间:2025-01-22 23:03:44浏览次数:1  
标签:int 个数 Codeforces long CodeForces solve Div 互质 define

训练情况

赛后反思

C题猜了个假结论WA4,每次选择度最多的删掉,在连续三个度都是最大的情况下,删中间的会寄

A题

有点前缀和的感觉,\([1,l]\) 互质个数为 \(l\),\([1,r]\) 互质个数为 \(r\),所以区间 \([l,r]\) 的个数就是 \(r-l\),特判一下 \(l=1,r=1\) 的情况答案是 \(1\)

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int l,r; cin>>l>>r;
    if(l == 1 && r == 1){
        cout<<1<<endl;
        return;
    }
    cout<<r-1-l+1<<endl;
}

signed main(){
    int T; cin>>T; while(T--)
    solve();
    return 0;
}

B题

子序列翻转,我们发现不能左右区间都选,这样翻转是无效操作,所以只能一边在 \([l,r]\),一边不在 \([l,r]\) 中去选,我们发现答案只能在 \([1,r]\) 和 \([l,n]\) 中间取 \(r-l+1\) 个数,取最小的几个数即可

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int n,l,r; cin>>n>>l>>r;
    vector<int> a(n + 1);
    for(int i = 1;i<=n;i++) cin>>a[i];
    vector<int> b,c,d;
    for(int i = 1;i<=n;i++){
        if(i<l) b.push_back(a[i]);
        else if(i>r) c.push_back(a[i]);
        else d.push_back(a[i]);
    }
    priority_queue<int,vector<int>,greater<int>> pq1;
    priority_queue<int,vector<int>,greater<int>> pq2;
    for(int i = 0;i<d.size();i++) pq1.push(d[i]),pq2.push(d[i]);
    for(int i = 0;i<b.size();i++) pq1.push(b[i]);
    for(int i = 0;i<c.size();i++) pq2.push(c[i]);
    int ans1 = 0,ans2 = 0;
    for(int i = 1;i<=r-l+1;i++){
        ans1 += pq1.top();
        ans2 += pq2.top();
        pq1.pop(); pq2.pop();
    }
    cout<<min(ans1,ans2)<<endl;
}

signed main(){
    int T; cin>>T; while(T--)
    solve();
    return 0;
}

标签:int,个数,Codeforces,long,CodeForces,solve,Div,互质,define
From: https://www.cnblogs.com/longxingx/p/18686866

相关文章

  • Codeforces Round 998 (Div. 3)(部分题解)
    补题链接A. Fibonacciness思路:了解清楚题意,求得是最大的斐波那契的度,数组只有5个数(最多度为3),能列出其对应的式子 或 或#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){intn,m,k;vector<int>a(4);set<int>s;......
  • IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
    B.KevinandGeometryvector的删除,无论是删除单个元素还是区间,一定是传入迭代器,而且区间一定是左闭右开区间点击查看代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ ios::sync_with_stdio(false); cin.tie(0); intT; cin>>T; while(T--) { int......
  • Codeforces Round 983 (Div. 2)(EF未改)
    有点爆。感觉自己速度又慢效果又不好。A简单题。最多就尽量让\(1,0\)搭配起;最少就是尽量搭配\(0,0\)和\(1,1\)。B也是简单题,想一下就可以了。首先,想要保证给定的是中位数,最简单的就是比它小的分一组,比它大的分一组,自己分一组。但是因为组长度必须是奇数,所以只有在偶数位......
  • IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
    A.KevinandArithmetic题意:给你\(n\)个数,你一开始有一个\(x=0\),每次你让\(x\)加上一个没用过的数,然后\(x\)会一直除二直到变成奇数。如果你加上一个数后能除2,分数加1,问分数最大多少。奇数后面加奇数才能是偶数,但一开始\(x\)是零,那么需要一个偶数,否则只能浪费一个奇数。所......
  • 使用 div 自定义 input 和 textarea
    1.为什么要自定义呢?原生的 input和textarea在某些特定场景下存在功能或兼容性限制,因此使用div元素自定义实现,突破原生输入框在样式、功能、兼容性上的限制。1、解决火狐浏览器换行问题某些版本的火狐浏览器中,原生 textarea 存在回车不换行而显示为空格的问题。这种......
  • Codeforces Round 999 比赛记录
    前情提要这个菜鸡CF上了\(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF。赛时记录A上来脑子抽了,吃了一发罚时。发现写错了一种情况,改过来就过了。感觉并不是一个好的开始。B竟成为本人唯一一遍过的题,虽然写的时候有点慌。CDP。一开始认为空间不够,但发......
  • CF div1+2 999 (A~E)
    赛时三题,\(D\)就差一个显然的剪枝就能过了,qwq...A显然第一步能选偶数就选偶数,之后只能选奇数。细节见代码。codeB对于选取的任意四条边,设腰为\(x\),短边为\(a\),长边为\(b\),则能形成等腰梯形的充要条件为:\(x\)出现次数\(>=2\),且\(a+2*x>b\)。两个腰选最大,并且\(a,b\)尽可能接近......
  • 写一个方法来获取div到浏览器窗口的高度
    在前端开发中,你可以使用JavaScript的getBoundingClientRect()方法来获取一个元素(比如div)相对于浏览器窗口的位置和大小。这个方法返回一个DOMRect对象,其中包含了top、right、bottom和left等属性,分别表示元素各边到视口(viewport)的距离。为了获取一个div元素到浏览器窗口顶部的高度......
  • Codeforces Round 998 (Div. 3) 部分题解
    写题解的时候这场在评测,就不放代码了。E.GraphComposition题意给两个无向简单图,对图\(1\)添加若干条边或删除若干条边,使得两图的连通性一致,最少需要变更多少条边。题解求出图\(2\)的连通性,考虑图\(1\)的所有边,若违背了图\(2\)联通性的要删除(图\(2\)不联通但图\(......
  • Codeforces Round 998 (Div. 3)
    题目链接:CodeforcesRound998(Div.3)总结:复建,Cwa两发,E读假题了。A.Fibonaccinesstag:签到Solution:简单模拟一下即可。voidsolve(){inta[5];for(inti=0;i<5;i++){if(i==2){continue;}cin>>a[i];......