首页 > 编程语言 >2024年中国传媒大学程序设计大赛(同步赛)赛题记录

2024年中国传媒大学程序设计大赛(同步赛)赛题记录

时间:2024-03-20 20:44:44浏览次数:30  
标签:https int ll 赛题 long 2024 传媒大学 数组 using

比赛地址:https://ac.nowcoder.com/acm/contest/77526

开错题了,赛时就出了5题;
补题顺带写一下记录

A:小苯的区间和疑惑

链接:https://ac.nowcoder.com/acm/contest/77526/A
大意:给一个数组\(a\),让你对数组中每一个数\(a_i\),求包含这个数的一个区间,要求这个区间的值的和最大;

可以直接贪心,即分别从左到右,从右到左求一次最大连续子序列和(这个不会可以看看这题:https://leetcode.cn/problems/maximum-subarray/description/),
求出左右两侧(左侧用数组\(l\)记录,右侧用数组\(r\)记录,看你喜欢怎么记)的最大子序列和后,直接\(a_i\)+\(l_{i-1}\)+\(r_{i+1}\)就可以得出答案,复杂度为\(O(n)\);

AC代码:

// author:manjuan
//
#include <bits/stdc++.h>
#define N 1001
using namespace std;
using ll = long long;



int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    ll n;
    cin>>n;
    vector<ll> v(n+2),sum(n+2),l(n+2),r(n+2);;
    for(int i=1;i<=n;i++)cin>>v[i];
    for(int i=1;i<=n;i++){
        l[i]=v[i]+l[i-1];
        if(l[i]<0)l[i]=0;
        //cout<<l[i]<<" ";
    }//cout<<"\n";
    for(int i=n;i>0;i--){
        r[i]=v[i]+r[i+1];
        if(r[i]<0)r[i]=0;
    }
    for(int i=1;i<=n;i++){
        sum[i]=v[i]+l[i-1]+r[i+1];
        cout<<sum[i]<<" ";
    }
}


B:小苯的三元组

链接:https://ac.nowcoder.com/acm/contest/77526/B
大意:给你一个n和一个长度为n的数组a,让你找满足条件\(lcm\)(\(a_i\),\(a_j\))\(\leq\)\(gcd\)(\(a_j\),\(a_k\))\(的三元组(\)a_i\(,\)a_j\(,\)a_k$)的数量。

赛时没出,其实不难想到:由于值域为\(1\)到\(2\)x\(10^5\),所以可以用桶(用数组a来存,也可以用map或者unordered_map,这里开int数组可以存下,但是数据量最大到\(2\)x\(10^5\),数据设置特殊一点是可以卡爆int的,所以得开long long)去装每一个数的个数;然后对于每一个在\(1\)到\(2\)x\(10^5\)间的i都跑一个三层循环(此循环实际上复杂度为调和级数级,即约\(n\)\(logn\)),
然后对于每一个\(a_i\),找为其整数倍的\(a_j\),对于每一个\(a_j\),找为其整数倍的\(a_k\)\(a_i\)、\(a_j\)、\(a_k\)的数量之积的和即为答案;

AC代码(实际上还可以再优化,但不优化也才跑87ms)

// author:manjuan
//
#include <bits/stdc++.h>
#define N 200005
using namespace std;
using ll = long long;

ll a[N];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    ll n,ans{0};
    cin>>n;

    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        a[x]++;
    }
    for(int i=1;i<N;i++){
        for(int j=i;j<N;j+=i){
            for(int k=j;k<N;k+=j){
                //if(a[i]&&a[j]&&a[k]){
                //    cout<<i<<" "<<j<<" "<<k<<endl;
                //}
                ans+=(a[i]*a[j]*a[k]);
            }
        }
    }
    cout<<ans<<"\n";
}


标签:https,int,ll,赛题,long,2024,传媒大学,数组,using
From: https://www.cnblogs.com/manjuan/p/18086041

相关文章

  • 模拟赛记录2024.03
    2024.03模拟赛记录2024.03.20TheBrickTowerMediumDivOne不考虑相同元素顺序,最优解的形式为,将原序列从小到大排序,从前往后依次放在当前答案的开头或者结尾考虑相同元素的影响,发现在贪心的同时记录当前放在首尾的同样元素的编号然后贪心的把小的编号靠前即可code//Autho......
  • 20240315-1-逻辑题目
    逻辑题目逻辑题目现在也是面试中常考的题目,也不清楚面试出这种题目的意义,可能就是考察面试人员是否逻辑清晰.这种题目没有什么好的方法,除非你见过原题,否则,只能根据所给出的条件慢慢分析,尽量不要用常规思路,希望大家要跳跃思维.如果实在不行就给出一种解法,可能......
  • 【漏洞复现】Progress Kemp LoadMaster 命令注入漏洞(CVE-2024-1212)
    0x01产品简介ProgressKempLoadMaster是一款高性能的应用交付控制器,具有可扩展性,支持实体硬件和虚拟机的负载均衡。它提供了当今应用服务所需的各种功能,包括深度用户验证、资安防护(如WAF/IPS/DDoS防护)以及零信任架构服务。这款控制器旨在为各种规模的企业和单位提供出色的负......
  • 2024.3.20 算法
    求最大公约数0与任何数字的最大公约数都是非0数字。intgcd(intlhs,intrhs){//默认lhs>=rhsif(rhs==0){returnlhs;}returngcd(rhs,lhs%rhs);//辗转相除}冒泡排序for(inti=0;i<n;++i){for(intj=i+1;j<n;++j){if(str[i]>str[j]){swap(str[i],str[j]);//让j始终......
  • 每日一看大模型新闻(2024.1.20-1.21)英伟达新对话QA模型准确度超GPT-4,却遭吐槽:无权重代
    1.产品发布1.1韩国Kakao:推出多模态大模型Honeybee发布日期:2024.1.20KakaounveilsmultimodallargelanguagemodelHoneybee-TheKoreaTimes主要内容:韩国科技巨头Kakao今天宣布他们已经开发了一种名为“蜜蜂”(Honeybee)的多模态大语言模型。据Kakao称,“蜜蜂”能够同时......
  • 【合集】HZOI2024——冲刺NOIP2024
    前言喵喵于\(2024.3.18\)建立\(vjudge\)团队\(NOIP2024\),成员为全体\(HZOI2024\)初三现役人员,旗下三个板块的专题训练,分别为动态规划、图论、字符串,其中题目非紫即黑,存在少量蓝。并于\(2024.3.19\)成功关闭\(luogu\)。团队链接动态规划图论字符串接......
  • 2024-03-20 闲话
    把上周四英语课的生词记录一下,文艺复兴一下。(不过最近草稿纸又用了大量了,应该会再做一些四级题把A4纸储备一下)rat&mouse一般认为rat是大老鼠,mouse的体型偏小mal-是一个前缀,表示“不好的”,比如malfunction动词表示“出故障”highcholestral高胆固醇的ulcer......
  • 【2024-03-19】期望失调
    20:00只要活着,我们所有人都持有改变的能力,甚至是发生根本性改变的能力。                                                 ——卡伦·霍妮昨晚小区又停水了,没有通知也......
  • Photoshop2024(PS)和Lightroom(LR)设计的智能磨皮插件Portraiture下载
     打造完美肤质,PortraiturePS/LR专用智能磨皮插件让你的照片焕发魅力副标题:让你的照片告别粗糙皮肤和毛孔,展现自然细腻的肤质在摄影后期处理中,给照片进行磨皮和肤质优化是一项必不可少的步骤。而今天,我们为你带来了一款专为Photoshop(PS)和Lightroom(LR)设计的智能磨皮插件——......
  • CorelDRAW2024中文版功能全面且强大的平面设计软件
    CorelDRAW2024是一款功能强大的专业平面设计软件,它提供了丰富的绘图工具和特效,使用户能够轻松创建各种类型的设计,如图标、海报、宣传册等。无论是从事平面设计、插画、品牌设计还是其他创意领域,CorelDRAW2024都能满足你的需求,帮助你释放无限的创意潜力,让你的设计脱颖而出。C......