Codeforces Round 1007 (Div. 2)(ABCD1)

A. The Play Never Ends

翻译:

        让我们来介绍一种双人游戏--乒乓球,在这种游戏中,胜负永远分明,不可能出现平局。

        索赛、福福和浩海三人想用一生的时间打乒乓球。他们决定用以下方式永远打下去:

  •         在每场比赛中,两名选手比赛,第三名选手旁观。
  •         为了保证公平,任何选手都不能连续打三次。连续两次比赛的选手必须在下一场比赛中作为观众退场,由另外两名选手进行比赛。否则,获胜者和旁观者将参加下一场比赛,而失败者将作为旁观者。

        现在,玩家们完全沉浸在这无限循环的比赛中,委托你们解决以下问题:

        给定一个整数 k,判断第一场比赛的观众能否成为第 k 场比赛的观众。

思路:

        推几场,可知从第一场开始每过3场,第一场比赛的观众还是观众(即场1,4,7。。。)

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){int n;cin>>n;if (n%3==1){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}
}


B. Perfecto

 翻译:

       长度为 n 的排列 p 是完美的。如果对于每个索引 i (1≤i≤n),它满足以下条件:

  • 前 i 个元素 p1+p2+...+pi 的和不是完全平方†。

        你希望事情是完美的。给定一个正整数 n,找出长度为 n 的完美排列,如果不存在,则打印-1。

思路:

        直接暴力深搜,dfs( i , sum) 维护当前的位置 i 与 [ : i ]的和sum。并使用set维护值是否选过。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;bool check (ll now){return now==pow((ll)pow(now,0.5),2);
}
vector<ll> ans(1e6);
void solve(){ll n;cin>>n;ll now = n*(n+1)/2;if (check(now)){cout<<-1<<endl;return;}ans[n] = -1;set<ll> s;for (ll i=1;i<=n;++i) s.insert(i);ll summ = 0;for (int i=1;i<=n;++i){int f = 1;for (auto& num:s){if (!check(summ+num)){ans[i] = num;summ+=num;s.erase(num);f = 0;break;}}if (f){cout<<-1<<endl;return;}}if (ans[n]==-1){cout<<-1<<endl;}else{for (ll i=1;i<=n;++i){if (i!=1) cout<<" ";cout<<ans[i];}cout<<"\n";}
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}
}


C. Trapmigiano Reggiano

 翻译:

        在意大利的一个村庄里,一只饥饿的老鼠从一棵有 n 个顶点的树 上的顶点 st 开始。

        给定长度为 n 的排列 p,共有 n 个步骤。在第 i 步中

  • 一块诱人的帕马森奶酪出现在顶点 pi 处。如果小鼠当前位于顶点 pi,它将停留在那里享受这一刻。否则,它会沿着简单路径移动一条边到顶点 pi。

        你的任务是找到这样一种排列,使小鼠在走完 n 步之后,必然到达顶点 en,那里有一个陷阱在等着它。

        请注意,小老鼠必须 经过 n 步之后到达 en 处,尽管在此过程中它可能会在更早的时候经过 en 在此过程中可能会提前经过 en。

思路:

       题目中步骤的意思是按到pi的路径走一边,之后目标就会变了。

       想到的排除的方法,我们以en节点为根节点建树。我们先遍历深度为i-1的一批节点,那么在之后的遍历中节点一定就到不了i-1以上深度的节点了,以此类推再遍历出i-2深度的节点,此时节点一定到不了i-2以上深度的节点了,一直推到深度为0,en点,记录到这结束后节点一定会在en点了。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){int n,st,en;cin>>n>>st>>en;vector<vector<int>> graph(n+1);for (int x,y,i=1;i<n;i++){cin>>x>>y;graph[x].push_back(y);graph[y].push_back(x);}vector<int> depth(n+1,0);vector<vector<int>> ans(n+1);auto dfs = [&](auto&& dfs,int now,int pre)->void{depth[now]=depth[pre]+1;ans[depth[now]].push_back(now);for (int i:graph[now]){if (i!=pre){dfs(dfs,i,now);}}};dfs(dfs,en,0);for (int i=n;i>=1;i--){for (int j:ans[i]){cout<<j<<" ";}}cout<<"\n";
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();int t;cin>>t;while (t--){solve();}
}

D1. Infinite Sequence (Easy Version)

  翻译:

       这是问题的简单版本。不同版本之间的区别在于,在这个版本中,l=r。只有解决了这个问题的所有版本,才能进行破解。

        给你一个正整数 n 和一个无限二进制数列 a 的前 n 项,其定义如下:

  • 对于 m>n,a_{m}=a_{1}\oplus a_{2}\oplus...\oplus a_{\frac{m}{2}}

你的任务是计算给定范围 [l,r] 内元素的和:a_{l}+a_{l+1}+...+a_{r}

思路:

        因为l==r,故而题目要求得到a[l]的值,由提供的式子可看出当m>n时a_{2m+1}=a_{2m},此时求a_{2m}=a_{1}\oplus a_{2}\oplus a_{3}...\oplus a_{m},当n为偶数时满足,a[n+1]是可能与a[n]不同的,所以要当n为偶数时,要推到a[++n]。而从a_{2m+1}=a_{2m}可得到,

        当m为偶数时,a_{2m}=a_{1}\oplus a_{2}\oplus a_{3}...\oplus a_{n}\oplus a_{m},区间(n,m)中两两相同,最终会变为0,无影响。

        当m为奇数时,a_{2m}=a_{1}\oplus a_{2}\oplus a_{3}...\oplus a_{n},区间(n,m】中两两相同,最终会变为0,无影响。

       注意a_{1}\oplus a_{2}\oplus a_{3}...\oplus a_{n}可以提前计算

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MX = 1e5+10;void solve(){ll n,l,r;cin>>n>>l>>r;// pre[i] ,a1^a2^...^a[i]的值vector<ll> a(n+1),pre(n+1);for (ll i=1;i<=n;i++){cin>>a[i];pre[i] = pre[i-1]^a[i];}// 将n变为奇数if (n%2==0){++n;a.push_back(pre[n/2]);pre.push_back(pre.back()^a[n]);}// 得到受a影响的所有数组for (int i=n+1;i<=2*n;i++){a.push_back(pre[i/2]);pre.push_back(pre[i-1]^a[i]);}ll res = 0;while (1){if (r<=n*2){res ^= a[r];break;}res ^= pre[n];r/=2;if (r%2==1){break;}}cout<<res<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--){solve();}
}

  有建议可以评论,我会积极改进qwq。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

swift 开发效率提升工具

安装github copliot for xcode github/CopilotForXcode brew install --cask github-copilot-for-xcode安装swiftformat for xcode brew install swiftformatXcode Swift File代码格式化-SwiftFormat

蜂鸣器使用

1、蜂鸣器原理 无源蜂鸣器模块根据输入的 不同方波信号&#xff08;作为震荡源&#xff09;可以发出不同的声音。驱动电路中三极管电阻一般为1K-4K都行&#xff0c;能够让三极管导通即可。&#xff08;三极管即带箭头的部分&#xff0c;基极和发射机&#xff08;PNP&#xff09…

drawDB:一款免费数据库设计工具

drawDB 是一款基于 Web 的免费数据库设计工具&#xff0c;通过拖拽、复制、粘贴等方式进行数据库建模设计&#xff0c;同时可以生成相应的 SQL 脚本。 功能特性 drawDB 目前可以支持 MySQL、MariaDB、PostgreSQL、SQL Server 以及 SQLite 数据库&#xff0c;核心功能包括&…

【AI论文】将1568个标记压缩到单个向量中并再解压:探索嵌入空间容量的极限

摘要&#xff1a;近期&#xff0c;一系列研究致力于解决将标记序列压缩为更短的实值向量序列的问题&#xff0c;这些向量序列将作为输入&#xff0c;替代标记嵌入或键值缓存。这些方法有助于减少现有语言模型中的计算量。尽管使用了强大的模型作为编码器&#xff0c;但无损压缩…

【JavaWeb学习Day20】

Tlias智能学习系统 员工登录 三层架构&#xff1a; Controller&#xff1a;1.接收请求参数&#xff08;用户名&#xff0c;密码&#xff09;2.调用Service方法3.响应结果 具体实现&#xff1a; /*** 登录*/ ​ PostMapping("/login") public Result login(Reque…

.net开源商城_C#开源商城源码_.netcore开源商城多少钱

在现今的电子商务领域&#xff0c;开源商城系统为企业和开发者提供了丰富的选择和可能性。其中&#xff0c;.NET开源商城、C#开源商城源码以及.NET Core 开源商城备受关注。然而&#xff0c;对于这些开源商城的价格问题&#xff0c;往往是人们在选择时需要重点考虑的因素之一。…

Java并发编程之ConcurrentHashMap的原理和使用

ConcurrentHashMap(CHM)是Java为解决高并发场景下哈希表性能瓶颈而设计的线程安全容器,其核心目标在于: 线程安全‌:避免多线程操作导致的数据不一致问题‌;高吞吐量‌:通过细粒度锁和无锁化设计降低线程竞争‌;动态扩展‌:支持自动扩容与数据结构优化(如链表转红黑树…

问题修复-后端返给前端的时间展示错误

问题现象&#xff1a; 后端给前端返回的时间展示有问题。 需要按照yyyy-MM-dd HH:mm:ss 的形式展示 两种办法&#xff1a; 第一种 在实体类的属性上添加JsonFormat注解 第二种&#xff08;建议使用&#xff09; 扩展mvc框架中的消息转换器 代码&#xff1a; 因为配置类继…

《基于 LIME 的低照度图像处理》开题报告

目录 一、研究目的和意义 1.研究目的 2.研究意义 二、国内外研究现状和发展趋势 三、研究内容、研究方法及可行性分析 1、研究内容 2、研究方法 3、可行性分析 四、项目特色与创新点 1、面向特定应用场景的针对性研究 1.多算法比较与选择的严谨性 2.基于硬件平台的深…

【Linux文件IO】系统IO详情

目录 一、前言 二、相关API介绍 2.1 open 2.2 read 2.3 write 2.4 lseek 2.5 close 三、简单示例 3.1 示例1 3.2 示例2 一、前言 在 Linux 系统编程中&#xff0c;系统 I/O&#xff08;又称低级 I/O&#xff09;是直接通过操作系统提供的系统调用实现的文件操作接口…

MATLAB代码:机器学习-分类器

本文包含三种机器学习分类器的MATLAB实现方式代码块&#xff1a;支持向量机、决策树、逻辑回归。 目录 SVM/支持向量机(Support Vector Machine) 原理 MATLAB实现 实例代码块 采用搜索确定参数 Decision Tree / 决策树 原理 MATLAB实现 实例代码块 Logistic Regressio…

DeepSeek赋能数据治理:数字转型智慧引擎,企业数治的全新解决方案

在数字化时代&#xff0c;数据已成为企业的核心资产&#xff0c;而数据治理则是企业实现数字化转型的关键环节。然而&#xff0c;传统数据治理面临着诸多挑战&#xff0c;如数据孤岛、数据质量参差不齐、治理效率低下等。 如今&#xff0c;随着人工智能技术的飞速发展&#xf…

火山引擎AI一体机-DeepSeek版来了

2025年伊始&#xff0c;DeepSeek 在各领域尽显其能。除常态公有云部署外&#xff0c;一些企业也希望将 DeepSeek 与本地数据、业务场景相融合&#xff0c;拥抱 AI 新未来。不过&#xff0c;算力基础设施缺失、模型交付周期长、推理性能不足、数据安全合规等技术和成本问题成为了…

Hadoop之02:MR-图解

1、不是所有的MR都适合combine 1.1、map端统计出了不同班级的每个学生的年龄 如&#xff1a;(class1, 14)表示class1班的一个学生的年龄是14岁。 第一个map任务&#xff1a; class1 14 class1 15 class1 16 class2 10第二个map任务&#xff1a; class1 16 class2 10 class…

IP属地是通过卫星定位的吗?如何保护用户隐私

在数字时代&#xff0c;网络空间成为了人们日常生活不可或缺的一部分。随着社交媒体、在线服务等平台的兴起&#xff0c;用户IP属地信息的重要性日益凸显。然而&#xff0c;关于IP属地是如何确定的&#xff0c;尤其是是否通过卫星定位这一问题&#xff0c;却常常引发公众的疑问…

20250225-代码笔记03-class CVRPModel AND other class

文章目录 前言一、class CVRPModel(nn.Module):__init__(self, **model_params)函数功能函数代码 二、class CVRPModel(nn.Module):pre_forward(self, reset_state)函数功能函数代码 三、class CVRPModel(nn.Module):forward(self, state)函数功能函数代码 四、def _get_encodi…

操作系统之文件系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)

上篇文章&#xff1a;Linux操作系统5-进程信号3&#xff08;信号的捕捉流程&#xff0c;信号集&#xff0c;sigaction&#xff09;-CSDN博客 本篇Gitee仓库&#xff1a;myLerningCode/l26 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 目录 一. 可重入…

Bandicam录屏软件,设置延时录制

Bandicam软件&#xff0c;又称班迪录屏&#xff0c;是一款简单好用的电脑屏幕录制软件&#xff0c;既可以录制PPT课程视频、网课视频&#xff0c;还可以游戏攻略视频等。该软件专门用来录制电脑的桌面视频&#xff0c;目前支持2种视频文件格式&#xff1a;avi和mp4。支持全屏或…

利用@WebMvcTest测试Spring MVC应用

文章目录 1. WebMvcTest概述2. 创建Spring Boot项目3. 创建主页控制器类4. 准备图片素材5. 创建主页模板视图6. 主页控制器测试类 6.1 创建主页控制器测试类6.2 运行单元测试方法 7. 启动应用&#xff0c;查看结果 7.1 启动应用7.2 访问项目首页 8. 实战小结 1. WebMvcTest概…