AtCoder Beginner Contest 313D题题解

news2025/2/26 8:16:22

文章目录

  • [ Odd or Even](https://atcoder.jp/contests/abc313/tasks/abc313_d)
    • 问题建模
    • 问题分析
      • 1.分析每次查询的作用
      • 2.利用异或运算的性质设计查询方法

Odd or Even

在这里插入图片描述在这里插入图片描述

问题建模

有n个数,每个数为0或者1,最多可以进行n次询问,每次询问选择k个不同的数,每次询问会得到这些数相加的奇偶性,问这n个数的值分别为多少。

问题分析

1.分析每次查询的作用

每次查询,可以获得这些数相加的奇偶性,即0或者1,则等价于将这些数进行异或得到的异或值。

2.利用异或运算的性质设计查询方法

异或运算有一个性质,就是一个数异或上另一个数偶数次,等价于没有异或该数。所以我们可以构造一种查询方法,其中某一个数被异或奇数次,而剩余数被异或上偶数次,从而得到该数的值。

则可以先进行k+1次查询,每次查询缺少k+1个数中的一个,这样k+1次查询得到的异或值,为k+1个元素每个元素出现奇数次的总异或值,那对于该值异或上前k+1次查询单次得到的异或值,等价于缺少值出现奇数次,其余值出现偶数次,则可以得到缺少值的数值。

然后对于剩下的元素,查询只需要前k-1个数再带一个数的异或值,然后与前k个数的异或值进行比较,若相同,则说明当前元素值与第k个元素相同,否则不同。

#include<bits/stdc++.h>

#define x first
#define y second
#define C(i) str[0][i]!=str[1][i]
using namespace std;
typedef unsigned long long ULL;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
const int N =1100, Mod =998244353;
int a[N];
int s[N];
int n,k;

void get_k(){
    ///获得前k+1个数每个数出现奇数次的总异或值
    int res=0;
    for(int i=1;i<=k+1;i++){
        cout <<"? ";
        for(int j=1;j<=k+1;j++){
            if(j!=i)    cout <<j <<" ";
        }
        cout<<endl;
        cin >>s[i];
        res^=s[i];
    }
	///用总异或值,异或是上缺少某一个值的异或值,从而得到对应为的值
    for(int i=1;i<=k+1;i++){
        a[i]=res^s[i];
    }
}

void solve() {
    cin >>n >>k;
    get_k();
    ///用前k个数的异或值与后面仅有第k个数不同的异或值作比较,从而得到对应位置的值
    for(int i=k+2;i<=n;i++){
        cout <<"? " <<i <<" ";
        for(int j=1;j<=k-1;j++){
            cout <<j <<" ";
        }
        cout <<endl;
        cin >>s[i];
        if(s[i]==s[k+1])   a[i]=a[k];
        else a[i]=a[k]^1;
    }
    cout <<"! ";
    for(int i=1;i<=n;i++){
        cout <<a[i] <<" ";
    }
    cout <<endl;
}  

int main() {
    int t = 1;
    //cin >> t;
    while (t--) solve();
    return 0;
}

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

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

相关文章

第04天 Spring是如何解决循环依赖的

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;每天一个知识点 ✨特色专栏&#xff1a…

推出稳定代码:人工智能辅助编码的新视野

推荐&#xff1a;使用 NSDT场景编辑器 快速助你搭建可二次编辑的3D应用场景 在不断发展的软件开发环境中&#xff0c;对效率和可访问性的追求导致了各种工具和平台的创建。最新的创新之一是StableCode&#xff0c;这是Stability AI的大型语言模型&#xff08;LLM&#xff09;生…

Flv格式视频怎么转MP4?视频格式转换方法分享

FLV格式的视频是一种早期的视频格式&#xff0c;不支持更高的分辨率和比特率&#xff0c;这意味着视频的清晰度和质量受限制&#xff0c;无法很好地保留细节和质量&#xff0c;这种格式的视频已经逐渐被更高质量的视频格式所替代&#xff0c;例如MP4格式&#xff0c;不仅具有很…

创新不辍,再结硕果 | 蓝奥声“无线联动监控技术”

随着无线电通信技术的迅速发展&#xff0c;无线远程监控系统也得到了技术上的更新&#xff0c;它将嵌入式产品与现代无线通信技术相结合&#xff0c;共同构成了一种新型的监测控制系统。物联网及其相关无线联动通信技术是智能科技快速发展的重要支撑技术之一&#xff0c;由此带…

主流国产GPU产品及规格概述(2023)

​ 美国对 AI 芯片出口管制&#xff0c;自主可控要求下国产芯片需求迫切。2022 年 10 月 7 日美国商务部工业安全局&#xff08;BIS&#xff09;发布《美国商务部对中华人民共和国&#xff08;PRC&#xff09;关于先进计算和半导体实施新的出口管制制造》细则&#xff0c;其中管…

复古游戏库管理器RomM

什么是 RomM &#xff1f; RomM&#xff08;代表 Rom Manager&#xff09;是一个专注于复古游戏的游戏库管理器。通过 Web 浏览器管理和组织您的所有游戏。受 Jellyfin 的启发&#xff0c;允许您从现代界面管理所有游戏&#xff0c;同时使用 IGDB 元数据丰富它们。 RomM 支持的…

电脑自动重启是什么原因?这几个原因不可忽视!

“感觉我的电脑也没有用多久呀&#xff0c;怎么总是会出现自动重启的情况呢&#xff1f;由于我对电脑不是很熟悉&#xff0c;都不知道该如何解决这个问题&#xff0c;有没有朋友可以解释一下这是为什么呀&#xff1f;“ 在使用电脑时&#xff0c;如果电脑总是自动重启&#xff…

MySQL_索引的使用与设计

最左前缀法则 最左前缀法则适用于联合索引&#xff1b;查询从索引的最左列开始&#xff0c;不跳过其中的列&#xff0c;如果跳过其中的列将会导致索引失效&#xff08;后面字段的索引失效&#xff09;。 验证最左前缀法则 三个列的联合索引都同时使用 explain select * from u…

基于R做宏基因组的进化树ClusterTree分析

写在前面 同上一篇的PCoA分析&#xff0c;这个也是基于公司结果基础上的再次分析&#xff0c;重新挑选样本&#xff0c;在公司结果提供的csv结果表上进行删减&#xff0c;本地重新分析作图 步骤 表格预处理 在公司给的ClusterTree的原始表格数据里选取要保留的样本&#xf…

腾讯云轻量应用服务器CPU配置?主频性能

腾讯云轻量应用服务器CPU型号是什么&#xff1f;处理器主频多少&#xff1f;轻量应用服务器不支持指定CPU处理器型号&#xff0c;目前腾讯云服务器网账号下的轻量应用服务器&#xff0c;CPU采用2.5GHz主频的Intel(R) Xeon(R) Gold 6133 处理器&#xff0c;睿频 3.0GHz&#xff…

CTFSHOW php命令执行

目录 web29 过滤flag web30 过滤system php web31 过滤 cat|sort|shell|\. 这里有一个新姿势 可以学习一下 web32 过滤 &#xff1b; . web33 web34 web35 web36 web37 data伪协议 web38 短开表达式 web39 web40 __FILE__命令的扩展 web41 web42 重定向…

对话即数据分析,网易数帆ChatBI做到了

大数据产业创新服务媒体 ——聚焦数据 改变商业 在当今数字化快速发展的时代&#xff0c;数据已经成为业务经营与管理决策的核心驱要素。无论是跨国大企业还是新兴创业公司&#xff0c;正确、迅速地洞察数据已经变得至关重要。然而&#xff0c;传统的BI工具往往对用户有一定的…

YOLOv5、YOLOv8改进:SEAttention 通道注意力机制

基于通道的注意力机制 源自于 CVPR2018: Squeeze-and-Excitation Networks 官方代码&#xff1a;GitHub - hujie-frank/SENet: Squeeze-and-Excitation Networks 如图所示&#xff0c;其实就是将不同的通道赋予相关的权重。Attention机制用到这里用朴素的话说就是&#xff0c;…

【论文阅读】基于深度学习的时序预测——FEDformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文地址&#xff1a;https://arxiv.org/abs/2201.12740 github地址&a…

Cobbler自定义yum源

再次了解下Cobbler的目录结构&#xff1a; 在/var/www/cobbler/ks_mirror目录下存放的是所有的镜像。 存放的是仓库镜像&#xff1a; 在/var/lib/cobbler/kickstarts目录下是存放的所有的kickstarts文件。 再有就是/etc/cobbler这个目录&#xff1a; [rootvm1 loaders]# cd /…

mysql延时问题排查

背景介绍 最近遇到一个奇怪的问题&#xff0c;有个业务&#xff0c;每天早上七点半产生主从延时&#xff0c;延时时间12.6K&#xff1b; 期间没有抽数/备份等任务&#xff1b;查看慢日志发现&#xff0c;期间有一个delete任务&#xff0c;在主库执行了161s delete from xxxx_…

LeetCode算法心得——故障键盘(StringBuilder)

大家好&#xff0c;我是晴天学长&#xff0c;很久都没有用StringBuilder类了&#xff0c;切记这个自带字符串反转的方法&#xff0c;会在实际比赛中节约不少的时间。 1 &#xff09;故障键盘 2) .算法思路 故障键盘 1.首先把全部字母给你的了 2.只会反转前面的字符 1.字符串…

【Spring Cloud Alibaba】Linux安装RocketMQ以及RocketMQ Dashboard可视化工具

环境准备&#xff1a;Linux安装Java环境&#xff08;OracleJDK&#xff09; 在当今分布式架构的开发中&#xff0c;消息队列成为了一种常见的解决方案。RocketMQ是阿里巴巴开源的分布式消息中间件&#xff0c;具有高吞吐量、高可用性和强大的扩展性&#xff0c;因此在构建大规模…

数据API服务管理功能 - 提升数据效率的关键工具

数据API服务管理功能 - 提升数据效率的关键工具 什么是数据API服务管理功能&#xff1f; 数据API服务管理功能是一种用于有效管理和控制数据API的工具。它为用户提供了方便的界面和功能&#xff0c;以简化数据访问、解析和处理的过程。通过使用数据API服务管理功能&#xff0…

预制混凝土产品公司【PreTam Holdings】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于智利的预制混凝土产品公司【PreTam Holdings】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&#xff08;…