Codeforces Round 498 (Div. 3)

目录

A. Adjacent Replacements

B. Polycarp's Practice

C. Three Parts of the Array

D. Two Strings Swaps

E. Military Problem

F. Xor-Paths


A. Adjacent Replacements

简单思维题

每一个数都变成第一个小于等于自己的的奇数

void solve(){
    
    cin>>n;
    while(n--){
    	int x; cin>>x;
    	cout<<(x&1 ? x : x-1)<<' ';
    }
    cout<<endl;
    return ;
}

B. Polycarp's Practice

简单性质

由题知一定是选出最大的m个数然后对这m个数分配线段即可,最后一个是到n

PII e[N];
void solve(){
    
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    	int x; cin>>x;
    	e[i]={x,i};
    }
    sort(e+1,e+1+n,greater<PII>());
    LL ans = 0;
    vector<int> res;
    for(int i=1;i<=m;i++){
    	auto [x,id]=e[i];
    	ans += x;
    	res.push_back(id);
    }
    
    sort(res.begin(),res.end());
    cout << ans << endl;
    int last = 0;
    for(int i=0;i<m;i++){
    	int v=res[i];
    	if(i==m-1) v=n;
    	cout<<v-last<<' ';
    	last=v;
    }
    cout<<endl;
    return ;
}

C. Three Parts of the Array

前后缀相等明显的就是双指针,按照双指针的方式来移动使得相等即可

void solve(){
    
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    LL pre=0,suf=0;
    int l=1,r=n;
    LL ans = 0;
    while(l<=r){
    	if(pre<=suf) pre+=a[l++];
    	else suf+=a[r--];
    	if(pre==suf) ans=max(ans,pre);
    }
    cout << ans << endl;
    return ;
}

D. Two Strings Swaps

题目不难但是有细节注意a的改变只能是在交换前

依次对几种情况仔细的讨论

4  a b c d   2次

3  a  a b  c  2次     b   c  a  a 1次

2  a  a  b  b  0次   a  a  a  b 1次   a  b a a 1 次

1 0 次
 

void solve(){
    cin>>n;
    string a,b; cin>>a>>b;
    a=' '+a,b=' '+b;
    map<char,int> mp;
    int ans = 0;
    for(int i=1;i<=n/2;i++){
    	set<char> s={a[i],a[n-i+1],b[i],b[n-i+1]};
    	mp.clear();
    	mp[a[i]]++;
    	mp[a[n-i+1]]++;
    	mp[b[i]]++;
    	mp[b[n-i+1]]++;
    	if(s.size()==4) ans+=2;
    	if(s.size()==3){
    		if(a[i]==a[n-i+1]) ans += 2;
    		else ans += 1;
    	}
    	if(s.size()==2){
    		if(mp[a[i]]!=2) ans += 1;
    	}
    }
    if(n&1 and a[n+1>>1]!=b[n+1>>1]) ans+=1;
    cout << ans << endl;
    return ;
}

E. Military Problem

简单树形问题,用类似dfs序列标记每一个点即可

int d[N],dmx[N],id[N];
int idx;
vector<int> g[N];
 
void dfs(int u){
	dmx[u]=d[u]=++idx;
	id[idx]=u;
	for(auto&v:g[u]){
		dfs(v);
		dmx[u]=max(dmx[v],dmx[u]);
	}
}
void solve()
{
    cin>>n>>m;
    for(int i=2;i<=n;i++){
    	int x; cin>>x;
    	g[x].push_back(i);
    }
	dfs(1);    
    while(m--){
    	int x,y; cin>>x>>y;
    	if(d[x]+y-1>dmx[x]) cout<<-1<<endl;
    	else cout<<id[d[x]+y-1]<<endl;
    }
    return ;
}

F. Xor-Paths

我们发现如果直接搜索的话是肯定会超时的,时间复杂度是2^{40},我们对于这个数就是2^{20}的两倍

,我们敏锐的发现如果可以变成一半的话就是可以通过的,于是我们想到可以折半搜索,所以可以得到答案,于是我们开map来记录路径即可,同时注意到一半是(n+m)/2的位置即可

LL X;
LL ans;
LL a[25][25];
map<LL,int> mp[25][25];
void dfs1(int x,int y,LL s){
	if(x>n or y>m) return ;
	s^=a[x][y];
	if(x+y==(n+m)/2+1){
		mp[x][y][s]++;
		return ;
	}
	dfs1(x+1,y,s);
	dfs1(x,y+1,s);
}
void dfs2(int x,int y,LL s){
	if(x<1 or y<1) return ;
	
	if(x+y==(n+m)/2+1){
		if(mp[x][y].count(s^X)) ans+=mp[x][y][s^X];
		return ;
	}
	s^=a[x][y];
	dfs2(x-1,y,s);
	dfs2(x,y-1,s);
}
void solve(){
    
    cin>>n>>m>>X;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=m;j++)
    		cin>>a[i][j];
    
    dfs1(1,1,0);
    dfs2(n,m,0);
    
    cout << ans << endl;
    return ;
}

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

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

相关文章

现在阿里云云服务器租用多少钱?一张表,报价单

2024年阿里云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

c++核心学习5

4.6继承 有些类与类之间存在特殊的关系&#xff0c;例如下图中&#xff1a; 我们发现&#xff0c;定义这些类时&#xff0c;下级别的成员除了拥有上一级的共性&#xff0c;还有自己的特性。这个时候我们就可以考虑利用继承的技术&#xff0c;减少重复代码 4.6.1继承的基本语法…

Nature:“量子龙卷风”首次模拟黑洞

科学家们在超流体氦气中首次创造出了一个巨大的“量子漩涡”&#xff08;quantum vortex&#xff09;&#xff0c;用以模拟黑洞。这一成就不仅使他们能够更加细致地观察模拟黑洞的行为&#xff0c;还能探究其与周围环境的交互作用。 诺丁汉大学的研究团队与伦敦国王学院和纽卡斯…

酷开会员 |酷开科技通过酷开系统让内容和用户完成适配

互联网大屏电视的趋势早有&#xff0c;从智能电视发行时就已见苗头&#xff0c;不过随着各大厂商在技术上的不断革新、模式上的不断突进&#xff0c;OTT模式给电视机行业带来了新一轮的风口。不论是什么企业或者行业&#xff0c;想要提升整体的效益&#xff0c;从效益层面来讲&…

后端程序员入门react笔记(九)- react 插件使用

setState setState引起的react的状态是异步的。操作完毕setState之后如果直接取值&#xff0c;可能取不到最新的值&#xff0c;我们举个例子console.log(this.state.num)打印的值&#xff0c;总是上一次的值而不是最新的。 import React, {Component} from react; class Ap…

[linux][调度] 内核抢占入门 —— 线程调度次数与 CONFIG_PREEMPTION

在工作中&#xff0c;如果你正在做开发的工作&#xff0c;正在在写代码&#xff0c;这个时候测试同事在测试过程中测出了问题&#xff0c;需要你来定位解决&#xff0c;那么你就应该先暂停写代码的工作&#xff0c;转而来定位解决测试的问题&#xff1b;如果你正在定位测试的问…

瑞_23种设计模式_状态模式

文章目录 1 状态模式&#xff08;State Pattern&#xff09;1.1 介绍1.2 概述1.3 状态模式的结构1.4 状态模式的优缺点1.5 状态模式的使用场景 2 案例一2.1 需求2.2 代码实现&#xff08;未使用状态模式&#xff09;2.3 代码实现&#xff08;状态模式&#xff09; 3 案例二3.1 …

数据中台:如何构建企业核心竞争力_光点科技

在当今信息化快速发展的商业环境下&#xff0c;“数据中台”已经成为构建企业核心竞争力的关键步骤。数据中台不仅是数据集成与管理的平台&#xff0c;更是企业智能化转型的加速器。本文将深入探讨数据中台的定义、特点、构建方法及其在企业中的作用。 数据中台的定义 数据中台…

基于python+vue的stone音乐播放器的设计与实现flask-django-php-nodejs

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;stone音乐播放器展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决用…

2024年通信工程专业-毕业论文

2024年毕业设计-通信专业VoLTE掉话分析资源-CSDN文库 毕业设计 ----移动通信中VoLTE信令流程分析 学生姓名 专业班级 学 号 指导教师 完成时间 …

人像抠图HumanSeg——基于大规模电话会议视频数据集的连接感知人像分割

前言 人像抠图将图像中的人物与背景进行像素级别的区分的技术。通过人像分割&#xff0c;可以实现诸如背景虚化、弹幕穿人等各种有趣的功能&#xff0c;为视频通话和影音观看提供更加优质和丰富的体验。由于广泛部署到Web、手机和边缘设备&#xff0c;肖像分割在兼顾分割精度的…

Meta 推出SceneScript,一种全新的3D场景重建方式

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

微服务day05(上) - Elasticsearch

1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近的…

单机模拟分布式MINIO(阿里云)

拉取的最新MINIO&#xff1a; minio version RELEASE.2024-03-15T01-07-19Z Runtime: go1.21.8 linux/amd64 分布式 MinIO 至少需要4个节点&#xff0c;也就意味着至少4个硬盘&#xff0c;对于囊中羞涩仅用来开发测试的人来说&#xff0c;这笔花销还是比较高昂。有没有更好的…

Mybatis中显示插入数据成功,但在数据库中却没有显示插入的数据

1、在mybatis-config.xml中查看是否添加了JDBC&#xff0c;并引入了映射文件 2、在测试文件中&#xff0c;结尾是否添加提交事务&#xff1a;sqlSession.commit() 添加了这一步就能够将数据提交到数据库中&#xff0c;最后再关闭事务&#xff1a;sqlSession.close() * 如果运…

css的active事件在手机端不生效的解决方法

需求&#xff1a;需求就是实现点击图中的 “抽奖” 按钮&#xff0c;实现一个按钮Q弹的放大缩小动画 上面是实现的效果&#xff0c;pc端&#xff0c;点击触发 :active 问题&#xff1a;但是这种方式在模拟器上可以&#xff0c;真机H5一调试就没生效了&#xff0c;下面是简单…

2024年阿里云2核4G服务器优惠价格30元、165元和199元1年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

学习人工智能:Attention Is All You Need-2-Transformer模型;Attention机制;位置编码

3.2 注意力机制Attention 注意力函数可以描述为将查询和一组键值对映射到输出的过程&#xff0c;其中查询、键、值和输出都是向量。输出被计算为值的加权和&#xff0c;其中每个值的权重由查询与相应键的兼容性函数计算得出。 3.2.1 缩放点积注意力 Scaled Dot-Product Attenti…

Vue3快速上手(十七)Vue3之状态管理Pinia

一、简介 Pinia官网:https://pinia.vuejs.org/zh/ 从官网截图里可以直接看到,pinia是一个vuejs的状态(数据)管理工具。功能性同vuex。logo是小菠萝。它是一个集中式状态管理工具。就是将多个组件共用的数据管理起来,重复利用。有点类似缓存的意思。 二、Pinia环境搭建 …

如何用VSCode和Clangd与Clang-Format插件高效阅读Linux内核源码及写驱动

一、如何高效阅读Linux源码&#xff1a;基于clangd uboot/busybox等都可以用这种方式&#xff0c;理论上说所有基于Make和Cmake的源码工程都可以用这套方案 阅读Linux源码最大问题在于调用链太复杂&#xff0c;一个函数或变量引用太多&#xff0c;source和cscopes等基于文本检索…