CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

news2024/12/24 8:47:01

A.MEXanized Array

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=210;
int a[N];
int n,k,x;
void solve() {
    cin>>n>>k>>x;
    if(x<k-1) {
        cout<<-1<<endl;
        return;
    }
    if(n<k) {
        cout<<-1<<endl;
        return;
    }
    for(int i=0; i<k; i++) {
        a[i]=i;
    }
    if(x==k) {
        for(int i=k; i<n; i++) {
            a[i]=k-1;
        }
    }
    else{
        for(int i=k;i<n;i++){
            a[i]=x;
        }
    }
//    for(int i=0;i<n;i++) cout<<a[i]<<' ';
//    cout<<endl;
    int sum=0;
    for(int i=0;i<n;i++) sum+=a[i];
    cout<<sum<<endl;
}
int main() {
    int t=1;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

B.Friendly Arrays

异或==>按位异或,看其二进制每一位

二进制每一位要么为0,要么为1

如果要最大的话,我们尽可能让原本为1的继续保持为1,让原本为0的变成1

如果要最小的话,我们尽可能让原本为0的继续保持为0,让原本为1的变成0

现在可以让每一个a[i]或上b[j],b[j]可以任意选,由于是或,所以只要某一个b[j]某一位上是1,那么a[1]到a[n]的这一位必定为1,那么最后将a[1]到a[n]异或起来,那么这一位的结果就是n个1异或

当n为奇数的时候,这一位就为1,那么这一位只会不变或者增大(只有01两种情况),所以我们需要更多的位都能为1,所以或上所有的b[j],因为当b[j]某一位为0时,由于是或,所以对结果没影响,当某一位为1时,那么最后所有a[i]异或得到的结果的该位肯定是1,这样得到的值就是最大的,一个b[j]都不或得到的结果就是最小的

当n为偶数的时候,这一位为0,那么这一位只会不变或减小,所以如果要求最小值的话,那么就或上所有的b[j],要求最大值的话,那么就一个b[j]或

由此,最终最大值和最小值只在两种情况中取到,即对于每一个a[i],或上所有的b[j],然后全部的a[i]异或起来和对于每一个a[i],一个b[j]也不或上,然后全部的a[i]异或起来

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#define endl '\n'
using namespace std;
const int N=2e5+10;
int a[N],b[N];
int n,m;
void solve() {
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    int tmp=0;
    for(int i=1;i<=m;i++){
        cin>>b[i];
        tmp|=b[i];
    }
    int x=0,y=0;
    for(int i=1;i<=n;i++){
        x^=a[i];
        y^=(a[i]|tmp);
    }
    if(x>y) swap(x,y);
    cout<<x<<' '<<y<<endl;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

C.Colorful Table

可以发现,二维数组b是关于y=x对称的,包含所有数字x的矩形一定是一个正方形

包含小数字的正方形一定包含大数字的正方形

只要从大到小枚举颜色,找到它的最小下标以及最大下标,然后以最小下标和最大小标作为一条边组成的正方形即为包含该数字的正方形

AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#define endl '\n'
//#define int long long
using namespace std;
int n,k;
void solve() {
    cin>>n>>k;
    vector<vector<int>>e(k+1);
    vector<int>ans(k+1);
    for(int i=1;i<=n;i++) {
        int x;
        cin>>x;
        e[x].push_back(i);
    }
    int t1=2e9,t2=0;
    for(int i=k;i>=1;i--){
        if(e[i].size()==0) continue;
        for(auto v:e[i]){
            t1=min(t1,v);
            t2=max(t2,v);
        }
        ans[i]=2*(t2-t1+1);
    }
    for(int i=1;i<=k;i++) cout<<ans[i]<<' ';
    cout<<endl;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

D.Prefix Purchase

原本思路:

 

 

代码: 

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#define endl '\n'
//#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
int n,k;
void solve() {
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    cin>>k;
    int maxn=0;
    int maxi=0;
    for(int i=1;i<=n;i++){
        int x=k/a[i];
        if(x>=maxn){
            maxn=x;
            maxi=i;
        }
    }
    if(k%a[maxi]==0){
        for(int i=1;i<=maxi;i++) cout<<maxn<<' ';
        for(int i=maxi+1;i<=n;i++) cout<<0<<' ';
        cout<<endl;
    }
    else{
        int idx=maxi;
        for(int i=maxi+1;i<=n;i++){
            if(a[maxi]+k%a[maxi]>=a[i]) idx=i;
        }
        for(int i=1;i<=maxi;i++) cout<<maxn<<' ';
        for(int i=maxi+1;i<=idx;i++) cout<<1<<' ';
        for(int i=idx+1;i<=n;i++) cout<<0<<' ';
        cout<<endl;
    }
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

发现有一个明显的问题:最后可能分出去的m*a[maxi]+k%a[maxi]中m可能不是1,那么该思路崩盘了

参考CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!) (A-D)_happychaoss的博客-CSDN博客

贪心

 AC代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#define endl '\n'
#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
int n,k;
void solve() {
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    cin>>k;
    //维护后缀最小值
    for(int i=n-1;i>=1;i--) a[i]=min(a[i],a[i+1]);
    vector<int>ans(n+1,0);
    ans[1]=k/a[1];
    int left=k-ans[1]*a[1];//剩下的硬币的数量
    int cnt=k/a[1];//加的次数
    for(int i=2;i<=n;i++){
        int diff=a[i]-a[i-1];
        if(diff==0) ans[i]=ans[i-1];
        else{
            cnt=min(cnt,left/diff);
            left-=cnt*diff;
            ans[i]=cnt;
            if(cnt==0) break;
        }
    }
    for(int i=1;i<=n;i++) cout<<ans[i]<<' ';
    cout<<endl;
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1031292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读:AugGAN: Cross Domain Adaptation with GAN-based Data Augmentation

Abstract 基于GAN的图像转换方法存在两个缺陷&#xff1a;保留图像目标和保持图像转换前后的一致性&#xff0c;这导致不能用它生成大量不同域的训练数据。论文提出了一种结构感知(Structure-aware)的图像转换网络(image-to-image translation network)。 Proposed Framework…

电路的基本定律——基尔霍夫定律

基尔霍夫定律 &#x1f391;预备知识&#x1f391;基尔霍夫电流定律(KCL)&#x1f383;基尔霍夫电流定律的本质&#xff1a;节点上电荷具有连续性(不会突变)&#x1f383;基尔霍夫电流定律的推广&#xff1a; &#x1f391;基尔霍夫的电压定律(KVL)&#x1f383;基尔霍夫电压定…

高压放大器在哪些领域中可以进行测试实验

高压放大器是一种重要的电子设备&#xff0c;在众多领域中都可以进行测试实验。本文将为您介绍高压放大器在几个主要领域中的测试实验应用。 高压放大器在电力系统领域中扮演着重要的角色。电力系统需要经常进行各种实验&#xff0c;包括测量电压、电流、功率和阻抗等参数。高压…

yolov5的改进思想

Yolo v5一共有四个模型,分别为Yolov5s、Yolov5m、Yolov5l、Yolov5x。 Yolov5s网络最小,速度最少,AP精度也最低,如果检测的以大目标为主,追求速度,倒也是个不错的选择。 其他的三种网络,在此基础上,不断加深加宽网络,AP精度也不断提升,但速度的消耗也在不断增加。 …

网络安全--防火墙

一、防火墙 二、防火墙实验 拓扑图 第一步、准备条件 1、云的设置 单击云设备&#xff0c;先选择UDP&#xff0c;再增加&#xff0c;增加之后就会记录在下面。 再增加一个虚拟的网卡&#xff0c;选择一个电脑中的虚拟网卡&#xff0c;然后增加。 先选择对应端口&#xff0c;…

【大数据开发技术】实验02-Hadoop常用命令

文章目录 Hadoop常用命令1、实验描述2、实验环境3、相关技能4、知识点5、实验步骤6、总结 练习提高 Hadoop常用命令 1、实验描述 熟悉HDFS的命令行接口 2、实验环境 虚拟机数量&#xff1a;3 系统版本&#xff1a;Centos 7.5 Hadoop版本&#xff1a;Apache Hadoop 2.7.3 …

JMeter 常见函数讲解

当使用JMeter进行性能测试或负载测试时&#xff0c;函数是一个非常有用的工具&#xff0c;可以帮助生成动态的测试数据或处理测试结果。 下面是一些常用的JMeter函数的详细讲解和并列示例&#xff1a; 1、__threadNum&#xff1a; 返回当前线程的编号。可以在测试过程中用于…

爬虫获取静态网页数据

自动爬取网页数据 正常情况下是我们使用浏览器输入指定url&#xff0c;对服务器发送访问请求&#xff0c;服务器返回请求信息&#xff0c;浏览器进行解析为我们看到的界面&#xff0c;爬虫就是使用python脚本取代正常的浏览器&#xff0c;获取相应服务器的返回请求信息&#x…

广告牌安全监测系统,用科技护航大型广告牌安全

城市的街头巷尾&#xff0c;处处可见高耸的广告牌&#xff0c;它们以各种形式和颜色吸引着行人的目光。然而&#xff0c;作为城市景观的一部分&#xff0c;广告牌的安全性常常被我们所忽视。广告牌量大面大&#xff0c;由于设计、材料、施工方法的缺陷&#xff0c;加上后期的检…

报错解决: 未能解析此远程名称: ‘raw.githubusercontent.com‘

如果出现类似报错 添加 199.232.68.133 raw.githubusercontent.com 到 C:\Windows\System32\drivers\etc\hosts 的末尾 再尝试执行

【RocketMQ】消息中间件学习笔记

【RocketMQ】消息中间件学习笔记 【一】RocketMQ概述【1】MQ简介【2】MQ永用途&#xff08;1&#xff09;限流削峰&#xff08;2&#xff09;异步解耦&#xff08;3&#xff09;数据收集 【3】RocketMQ 介绍&#xff08;1&#xff09;RocketMQ 特点&#xff08;2&#xff09;Ro…

如何提升LED显示屏显示效果?

影响LED显示屏显示效果的因素有很多&#xff0c;以下是一些主要的因素&#xff1a; LED灯珠的质量和性能&#xff1a;LED灯珠是LED显示屏的核心组件&#xff0c;其质量和性能会直接影响到整个LED显示屏的显示效果。 显示屏的亮度&#xff1a;LED显示屏的亮度是影响显示效果的一…

Solid框架节点级响应性

前言 随着组件化、响应式、虚拟DOM等技术思想引领着前端开发的潮流&#xff0c;相关的技术框架大行其道&#xff0c;就以目前主流的Vue、React框架来说&#xff0c;它们都基于组件化、响应式、虚拟DOM等技术思想的实现&#xff0c;但是具有不同开发使用方式以及实现原理&#…

霍夫曼编码,计算霍夫曼编码树(数字图像处理大题复习 P7)

文章目录 计算出 x1~x6 的树计算 x1~x6 的编码得出霍夫曼编码 w1~w6 计算出 x1~x6 的树 我们先对 x1~x6 进行排序把最底下的加起来&#xff0c;上面写0 下面写1 然后一层一层加上去&#xff0c;注意加上去以后要 重新排序 计算 x1~x6 的编码 举例&#xff0c;从 x5 出发&…

计算机竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 …

「UG/NX」Block UI 从列表选择部件SelectPartFromList

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

硬实力+软实力!2023功能测试进阶之路!

作为一名游戏功能测试&#xff0c;偶尔和朋友聊起工作&#xff0c;他们会说&#xff1a;“你这个工作好呀&#xff0c;平时玩玩游戏&#xff0c;一边玩一边就把工作做了”&#xff1b;有时为了避免别人这样理解&#xff0c;我干脆说自己是搞游戏开发的&#xff0c;这个时候又有…

微软推出统一 Copilot AI 助手;谷歌拟自主研发 AI 芯片;苹果拟在国内引进新的 OLED 供应商丨RTE开发者日报 Vol.55

开发者朋友们大家好&#xff1a; 这里是「RTE 开发者日报」&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

「聊设计模式」之 设计模式的前世今生

&#x1f3c6;本文收录于《聊设计模式》专栏&#xff0c;专门攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎持续关注&&收藏&&订阅&#xff01; 目录&#xff1a; 一、什么是设计模式设计模式的定义设计模式的…

Caddy Web服务器深度解析与对比:Caddy vs. Nginx vs. Apache

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…