6月4号总结

目录

刷题记录(Codeforces Round 916 (Div. 3)A~D)

1.A. Problemsolving Log

2.B. Preparing for the Contest

3.C. Quests

4.D. Three Activities


刷题记录(Codeforces Round 916 (Div. 3)A~D)

1.A. Problemsolving Log

Problem - A - Codeforces

A问题要学1分钟,Z问题要学26分钟,按照这个规律,看字符串问题出现的次数,如果出现次数大于要学的时间,那么意味这解决了这个问题。

下面是AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{
	ll ans=0;
	ll n;
	cin>>n;
	string s;
	cin>>s;
	map<char,ll>q;
	for(int i=0;i<s.size();i++){
		if(q[s[i]]!=-1)
		q[s[i]]++;
		if(q[s[i]]>=(s[i]-'A'+1)) ans++,q[s[i]]=-1;
	}
	cout<<ans<<"\n";
}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

2.B. Preparing for the Contest

Problem - B - Codeforces

查找兴奋次数,因为有多种答案,我们可以指定一种模式,当消费次数为0次或者n-1次时,直接逆序或者顺序输出1到n,其他情况按照下面这个方式:

举例:n=5

k=1,2 1 5 4 3

k=2,1 2 5 4 3

k=3,1 2 3 5 4

下面是AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{
	ll n,k;
	cin>>n>>k;
	if(k==n-1)
	{
		for(int i=1;i<=n;i++){
			cout<<i<<" ";
		}
		cout<<"\n";
		return;
	}
	if(k==0)
	{
		for(int i=n;i>=1;i--){
			cout<<i<<" ";
		}
		return;
	}
	if(k==1)
	{
		cout<<2<<" "<<1<<" ";
		for(int i=n;i>=3;i--){
			cout<<i<<" ";
		}
		cout<<"\n";
		return;
	}
	for(int i=1;i<=k;i++){
		cout<<i<<" ";
	}
	for(int i=n;i>=k+1;i--){
		cout<<i<<" ";
	}
	cout<<"\n";
}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

3.C. Quests

Problem - C - Codeforces

题意:题目给出两个数组,a数组为任务第一次完成加的经验,b数组为第2次或者以上完成这个任务所加的经验,并且第i个任务必须i-1个任务完成后才能解锁,一开始时,任务1是可以完成的,k是可以完成的任务次数,求最大经验。

一个公式

就是数学加贪心,每次循环取优的结果,最后答案为最优结果的最大值。

下面是AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[200010],b[200010];
void solve()
{
	ll n,k;
	cin>>n>>k;
	for(ll i=0;i<n;i++) cin>>a[i];
	for(ll i=0;i<n;i++) cin>>b[i];
	ll ans=0,sum=0,cnt=0;
	for(int i=0;i<n;i++){
		
		sum+=a[i];
		cnt=max(cnt,b[i]);
		k--;
		if(k>=0)
		ans=max(ans,k*cnt+sum);
	}
	cout<<ans<<"\n";
}
int main()
{
	
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}

4.D. Three Activities

Problem - D - Codeforces

需要我们找到三个数组中的都选出来一个数,这三个数之和的最大值,但是这三个数所处的下标都各不相同。

n的范围是1x10^5,所以不能暴力,但是我们需要找出的是最大值,那么我们只需要找到每个数字最大的三个数字的下标,再进行一个三重for循环即可。

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
#define pii pair<int,int>

int a[N];
int b[N];
int c[N];

void solve(){
    int n;cin >> n;
    for(int i = 1;i <= n;i++)cin >> a[i];
    for(int i = 1;i <= n;i++)cin >> b[i];
    for(int i = 1;i <= n;i++)cin >> c[i];

    int a1 = -1,a2 = -1,a3 = -1;
    for(int i = 1;i <= n;i++){
        if(a1 == -1 || a[i] > a[a1]){
            a3 = a2;
            a2 = a1;
            a1 = i;
        }else if(a2 == -1 || a[i] > a[a2]){
            a3 = a2;
            a2 = i;
        }else if(a3 == -1 || a[i] > a[a3]){
            a3 = i;
        }
    }

    int c1 = -1,c2 = -1,c3 = -1;
    for(int i = 1;i <= n;i++){
        if(c1 == -1 || c[i] > c[c1]){
            c3 = c2;
            c2 = c1;
            c1 = i;
        }else if(c2 == -1 || c[i] > c[c2]){
            c3 = c2;
            c2 = i;
        }else if(c3 == -1 || c[i] > c[c3]){
            c3 = i;
        }
    }

    int b1 = -1,b2 = -1,b3 = -1;
    for(int i = 1;i <= n;i++){
        if(b1 == -1 || b[i] > b[b1]){
            b3 = b2;
            b2 = b1;
            b1 = i;
        }else if(b2 == -1 || b[i] > b[b2]){
            b3 = b2;
            b2 = i;
        }else if(b3 == -1 || b[i] > b[b3]){
            b3 = i;
        }
    }

    vector<int>posA(3);
    posA[0] = a1,posA[1] = a2,posA[2] = a3;
    vector<int>posB(3);
    posB[0] = b1,posB[1] = b2,posB[2] = b3;
    vector<int>posC(3);
    posC[0] = c1,posC[1] = c2,posC[2] = c3;

    int res = 0;
    for(int i = 0;i < 3;i++){
        for(int j = 0;j < 3;j++){
            for(int k = 0;k < 3;k++){
                int aa = posA[i],bb = posB[j],cc = posC[k];
                if(aa != bb && aa != cc && bb != cc){
                    res = max(res,a[aa] + b[bb] + c[cc]);
                }
            }
        }
    }
    
    cout << res << endl;
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2-异常-FileNotFoundException(三种不同的报错)

2-异常-FileNotFoundException(三种不同的报错) 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&#xff09; 生活公众…

链表的讲解与单链表的实现

链表的讲解与单链表的实现 一、链表的概念及结构二、链表的分类三、单链表的实现(使用VS2022)1.销毁、打印内容2.尾插尾删、头插头删尾插尾删头插头删 3.查找、指定插入、指定删除查找指定插入指定删除 4.目标后一个插入、目标后一个删除 四、完整 SList.c 源代码 一、链表的概…

一个简约而不简单的记账 App(一刻记账)

前言 在两年多前, 我曾经写过一个本地化的记账 App, 当时没有想过以后的发展. 全程是本地化的, 当时主要是为了练习 Compose 而写的. TallyApp 而现在一个完整的记账 App 它来了 一刻记账 算是圆了我两年前的梦了吧. 也让我可以真正的使用自己的记账软件. 下面是 一刻记账 记…

联发科COMPUTEX展台有看点,2024年最热AI技术都在这里

近日&#xff0c;备受瞩目的COMPUTEX 2024科技展会开幕&#xff0c;联发科在COMPUTEX展出了先进AI技术成果和AI在广泛领域的创新应用。从不久前召开的天玑开发者大会MDDC来看&#xff0c;联发科的AI关键技术和AI应用生态早已遍地开花&#xff0c;全面覆盖智能手机、平板电脑、汽…

【图 - 遍历(BFS DFS)】深度优先搜索算法(Depth First Search), 广度优先搜索算法(Breadth First Search)

图的深度优先搜索(Depth First Search)&#xff0c;和树的先序遍历比较类似; 广度优先搜索算法(Breadth First Search)&#xff0c;又称为"宽度优先搜索"或"横向优先搜索"。 深度优先搜索 深度优先搜索介绍深度优先搜索图解有向图的深度优先搜索广度优先搜…

vue2中封装图片上传获取方法类(针对后端返回的数据不是图片链接,只是图片编号)

在Vue 2中实现商品列表中带有图片编号,并将返回的图片插入到商品列表中,可以通过以下步骤完成: 在Vue组件的data函数中定义商品列表和图片URL数组。 创建一个方法来获取每个商品的图片URL。 使用v-for指令在模板中遍历商品列表,并显示商品名称和图片。 下面是一个简单的Vu…

【Vue】成绩案例

文章目录 一、功能描述二、思路分析三、完整代码 一、功能描述 1.渲染功能 2.删除功能 3.添加功能 4.统计总分&#xff0c;求平均分 二、思路分析 渲染功能 v-for :key v-bind:动态绑定class的样式&#xff08;来回切换&#xff09; 删除功能 v-on绑定事件&#xff0c; 阻止…

JVM学习-MAT

MAT(Memory Analyzer Tool) 基本概述 Java堆内存分析器&#xff0c;可以用于查找内存泄漏以及查看内存消耗情况MAT是基于Eclipse开发的&#xff0c;不仅可以单独使用&#xff0c;还能以插件方式嵌入Eclipse中使用&#xff0c;是一款免费的性能分析工具 获取堆dump文件 dump…

目标检测数据集 - 智能零售柜商品检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;智能零售柜商品检测数据集&#xff0c;真实智能零售柜监控场景采集高质量商品图片数据&#xff0c;数据集含常见智能零售柜商品图片&#xff0c;包括罐装饮料类、袋装零食类等等。数据标注标签包含 113 个商品类别&#xff1b;适用实际项目应用&#xff…

K8s Pod的QoS类

文章目录 OverviewPod的QoS分类Guaranteed1.如何将 Pod 设置为保证Guaranteed2. Kubernetes 调度器如何管理Guaranteed类的Pod Burstable1. 如何将 Pod 设置为Burstable2.b. Kubernetes 调度程序如何管理 Burstable Pod BestEffort1. 如何将 Pod 设置为 BestEffort2. Kubernete…

【CUDA】保姆级用学校服务器远程编写运行CUDA代码-jupyter

用学校服务器远程编写运行CUDA代码 0 前言1 检查当前系统是否支持CUDA2 在 Jupyter 中编写和执行代码3 打开终端 激活pytorch环境4 创建新文件&#xff08;.cu格式&#xff09;5 执行代码 0 前言 关于如何用xshell连学校服务器&#xff0c;我在之前的博客中已经详细介绍了&…

从零开始利用MATLAB进行FPGA设计(七)用ADC采集信号教程2

黑金的教程做的实在太拉闸了&#xff0c;于是自己摸索信号采集模块的使用方法。 ADC模块&#xff1a;AN9238 FPGA开发板&#xff1a;AX7020&#xff1b;Xilinx 公司的 Zynq7000 系列的芯片XC7Z020-2CLG400I&#xff0c;400引脚 FBGA 封装。 往期回顾&#xff1a; 从零开始利…

【计算机毕设】基于SpringBoot的个人理财系统设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 个人理财管理对于现代人来说越来越重要&#xff0c;随着金融产品和消费方式的多样化&#xff0c;人们需要一个方便、高效、安全的工具来管理和规划自…

Python中数字比较与获取较大值的深入解析

目录 一、引言 二、Python数字类型概述 三、数字比较操作符 四、获取较大值的逻辑与实现 五、高级话题&#xff1a;使用内置函数和库 六、性能分析与优化 七、案例分析 八、总结与展望 一、引言 在编程世界中&#xff0c;数字的比较和获取较大值是基础且常见的操作。P…

UKP3D,工程文件怎么判断是否保存数据过?

湖南中南勘测某用户因在使用其他软件时造成死机退出&#xff0c;再打开我们软件时发现设计库为空&#xff1b;用户确定保存过很多次&#xff0c;用户很着急。 凡是保存后的数据&#xff0c;这个MAXELEMENT 的值是通过 节点的编号相加的。所以这个值都是0时&#xff0c;意味着没…

woodward控制器维修变压器差动保护器ESDR405TB

WOODWARD伍德沃德控制器保护器维修ESDR4T系列LR20021&#xff1b;LR20476&#xff1b;MFR1&#xff1b;LR20949&#xff1b;UMT145B/A3&#xff1b;MFR1345B。 伍德沃德MFR1系列控制器维修&#xff1b;多功能继电保护器维修&#xff1b;用于船舶,电厂待工业控制机器设备。 WOO…

生命周期钩子小案例

文章目录 一、在created中发送数据二、在mounted中获取焦点 一、在created中发送数据 <body><div id"app"><ul><li v-for"(item, index) in list" :key"item.id" class"news"><div class"left"…

Tomcat服务器|创建java web项目

文章目录 Tomcat是什么&#xff1f;下载启动Tomcat使用maven创建java web项目集成本地Tomcat例子注意事项启动tomcat控制台乱码改端口 Tomcat是什么&#xff1f; Apache Tomcat&#xff0c;通常简称为Tomcat&#xff0c;是一个开源的Web服务器和Servlet容器。Tomcat主要用来运…

kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量增量数据同步

本次课程的逻辑是同步t1表数据到t2表&#xff0c;t1和t2表的表机构相同&#xff0c;都有id&#xff0c;name,createtime三个字段。 CREATE TABLE t1 (id bigint NOT NULL AUTO_INCREMENT,name varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,cr…

视创云展虚拟展厅的6大优势,感受3D数字化带来的无限可能!

在数字化浪潮的推动下&#xff0c;视创云展线上数字展厅以其独特的魅力&#xff0c;正逐步成为企业营销宣传的新窗口。它利用互联网技术&#xff0c;将实体展览馆的内容以数字化的形式呈现&#xff0c;打破了时间和空间的限制&#xff0c;让更多人能够随时随地畅游参观&#xf…