首页 > 编程语言 >2024牛客寒假算法基础集训营2

2024牛客寒假算法基础集训营2

时间:2024-02-05 18:11:42浏览次数:29  
标签:int long 2024 牛客 solve ans -- 集训营 left

题目链接

A.

模拟

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve() {
    int n;cin>>n;
    while(n--){
        int a,b,c;cin>>a>>b>>c;
        int ans=0;
        if(a==150)ans+=1;
        else if(a==200)ans+=2;
        if(b==34||b==36||b==38||b==40)ans+=1;
        else if(b==45)ans+=2;
        if(c==34||c==36||c==38||c==40)ans+=1;
        else if(c==45)ans+=2;
        cout<<ans<<'\n';
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int left=1;
    //cin>>left;
    while(left--){
        solve();
    }
}

B.

把防猫网的位置用小数来表示

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve() {
    int n,m,k;cin>>n>>m>>k;
    vector<vector<int>>g(n+5,vector<int>(m+5,0));
    for(int i=1,x,y;i<=k;i++){
        cin>>x>>y;
        g[x][y]=1;
    }
    int ans=0;
    map<pair<double,double>,int>mp;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(g[i][j]){
                double xx=(i-1+i)*1.0/2,yy=j*1.0;
                if(!mp[{xx,yy}]) {
                    mp[{xx, yy}] = 1;
                    ans++;
                }
                xx=(i+1+i)*1.0/2,yy=j*1.0;
                if(!mp[{xx,yy}]) {
                    mp[{xx, yy}] = 1;
                    ans++;
                }
                xx=i*1.0,yy=(j-1+j)*1.0/2;
                if(!mp[{xx,yy}]) {
                    mp[{xx, yy}] = 1;
                    ans++;
                }
                xx=i*1.0,yy=(j+1+j)*1.0/2;
                if(!mp[{xx,yy}]) {
                    mp[{xx, yy}] = 1;
                    ans++;
                }
            }
        }
    }
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int left=1;
    //cin>>left;
    while(left--){
        solve();
    }
}

E.

把1,2的位置分别存下来
从后往前遍历,取较小的位置,后面的全部去掉

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve() {
    int n;cin>>n;
    vector<int>pos_1,pos_2;
    for(int i=1,x;i<=n;i++){
        cin>>x;
        if(x==1)pos_1.push_back(i);
        else pos_2.push_back(i);
    }
    if(pos_2.size()==0){
        cout<<pos_1.size()<<'\n';return ;
    }
    if(pos_1.size()==0){
        cout<<pos_2.size()<<'\n';return ;
    }
    int ans=0;
    while(pos_1.size()&&pos_2.size()){
        if(pos_1.back()<pos_2.back()){
            ans++;
            while(pos_2.size()&&pos_1.back()<pos_2.back())pos_2.pop_back();
            pos_1.pop_back();
        }
        if(pos_2.back()<pos_1.back()){
            ans++;
            while(pos_1.size()&&pos_2.back()<pos_1.back())pos_1.pop_back();
            pos_2.pop_back();
        }
    }
    if(pos_2.size())ans+=pos_2.size();
    if(pos_1.size())ans+=pos_1.size();
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int left=1;
    cin>>left;
    while(left--){
        solve();
    }
}

I.

可以发现边权的计算方式就是两倍的较大值

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve() {
    int n;cin>>n;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a.begin()+1,a.end());
    int ans=0;
    for(int i=2;i<=n;i++){
        ans+=(i-1)*2*a[i]*2;
    }
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int left=1;
    cin>>left;
    while(left--){
        solve();
    }
}

J.

可以发现边权计算方式就是两倍的较小值或最小值的4倍

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve() {
    int n;cin>>n;
    vector<int>v(n+1);
    int mi=0x3f3f3f3f;
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }
    sort(v.begin()+1,v.end());
    mi=v[1];
    for(int i=1;i<=n;i++){
        if(v[i]==mi)v[i]*=2;
        else v[i]=min(2*v[i],4*mi);
    }
    vector<int>pre(n+1,0);
    for(int i=1;i<=n;i++)pre[i]=pre[i-1]+v[i];
    int ans=0;
    for(int i=2;i<=n;i++){
        ans+=pre[i-1];
    }
    ans*=2;
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int left=1;
    cin>>left;
    while(left--){
        solve();
    }
}

标签:int,long,2024,牛客,solve,ans,--,集训营,left
From: https://www.cnblogs.com/wwww-/p/18008596

相关文章

  • 2024初三年前集训测试3
    2024初三年前集训测试3\(T1\)夕景昨日\(90pts\)部分分\(10pts\):输出No。\(20pts\):\(2^{n}\)的\(DFS\)暴力枚举能得到的所有数,用map里进行判断。\(90pts\):输出Yes。正解观察到\(1\len\le100000,0\lea_{i}\le500000\)。猜测\(n\)到达一......
  • 2024/2/5~2024/2/11
    小红数组操作题目链接:https://ac.nowcoder.com/acm/contest/74362/D题目描述小红拿到了一个数组,初始数组为空,她希望你实现以下两种操作:1.输入1\(x\)\(y\),将\(x\)插入在元素\(y\)的右边。保证此时数组中没有元素等于\(x\),且数组中存在一个\(y\)。特殊的,如果将\(......
  • 2024年重启人生要做的100件事,记录待办清单并打卡完成
    新年伊始,很多人都怀揣着改变自己、追求更美好生活的期望,渴望在2024年做一些有意义的事情,为自己的人生注入新的活力。为了帮助大家更好地实现这些目标,小编整理了一份2024年重启人生要做的100件事待办清单,涵盖了健康美丽、自我提升、享受生活、诗与远方、奖励自己等五个方面。这些......
  • Automotive IQ第14届年度汽车网络安全大会将于2024年在底特律举行
    在接受《AutomotiveIQ》独家采访时,福特汽车公司汽车和移动网络安全高级顾问DarrenShelcusky深入探讨了符合UNECER155/R156法规的关键因素,揭示了汽车行业满足这些严格法规的过程。从区分网络安全标准和法规到详细说明其对主机厂和更广泛的汽车网络安全领域的影响,Darren提供了综......
  • (python)做题记录||2024.2.4||题目是codewars的【 All Balanced Parentheses】
    题目链接:https://www.codewars.com/kata/5426d7a2c2c7784365000783/python我的解决方案:defbalanced_parens(n):#Yourcodehere!used_l=[Falseforiinrange(n)]used_r=[Falseforiinrange(n)]answers=[]defprocess(answer):iflen(a......
  • pkuwc2024 & wc2024
    虽然去年pkusc拿过优异了,但是还是去旅游了一下。不想按照严格的时间线写了,想到什么写什么吧。坐高铁去,发现zph和miao22也在这一车次,但是和被8-9分割了。CQ的地铁感觉没有几段是在地下的,全是在天上跑,还有从楼里穿过的,还是比传统地铁好玩的。但下来就不好玩了,拎着箱子......
  • 2024年碰到这三条红线的电车,坚决不买!
    文|AUTO芯球作者|雷歌我最近有天夜里打车打到一辆威马汽车,车里乌漆麻黑一片,我好奇地问,“师傅你中控屏咋不打开,太黑了。”师傅带有怨气地吐槽:“X,威马破产了,车机也停了”。车子买的威马汽车,房子买的恒大期房,股票放在了大A,大概是这代年轻人最惨的事情了。这是威马汽车在2023年10月......
  • 牛客周赛31
    A小红小紫替换https://ac.nowcoder.com/acm/contest/74362/A这题相当于签到题只需要将kou的情况转换成yukari就行其他不变点击查看代码#include<bits/stdc++.h>usingnamespacestd;intmain(){stringa;cin>>a;if(a=="kou")cout<<"yukari"......
  • 【2024-02-03】连岳摘抄
    23:59但我相信,能打败黑暗的,不是强大的魔力,而是生活中的小事和微小的爱。                                                 ——托尔金教育离不开考试,考试就只能考智......
  • 【2024-02-04】病毒感染
    20:00一二三四五六七,万木生芽是今日。远天归雁拂云飞,近水游鱼迸冰出。                                                 ——《京中正月七日立春》上周浑身不适之后,隔......