当前位置: 首页 > news >正文

打卡信奥刷题(3219)用C++实现信奥题 P8279 「MCOI-08」Fill In REMATCH

P8279 「MCOI-08」Fill In REMATCH

题目描述

Dream 有一个长度为nnn1≤n≤1051\le n\le 10^51n105)的整数数组a1,a2,…,ana_1,a_2,\dots,a_na1,a2,,an,其中对于i=1,2,…,ni=1,2,\dots,ni=1,2,,n,满足0≤ai<2600\le a_i<2^{60}0ai<260

他计算了前缀异或数组pi=a1⊕a2⊕⋯⊕aip_i=a_1\oplus a_2\oplus\dots\oplus a_ipi=a1a2ai以及后缀异或数组si=ai⊕ai+1⊕⋯⊕ans_i=a_i\oplus a_{i+1}\oplus\dots\oplus a_nsi=aiai+1an

现在 Tommy一共pppsssnnn个元素换成−1-11。给定当前的pppsss数组,请恢复任意一组可能为原数组的a1,a2,…,ana_1,a_2,\dots,a_na1,a2,,an

保证存在一组合法解。

输入格式

本题有多组数据,第一行一个正整数ttt,为数据组数。接下来ttt组数据,其中对于每一组数据:

第一行一个正整数nnn1≤n≤1051\le n\le 10^51n105)。

接下来nnn个整数p1,p2,…,pnp_1,p_2,\dots,p_np1,p2,,pn

接下来nnn个整数s1,s2,…,sns_1,s_2,\dots,s_ns1,s2,,sn

输出格式

对于每一组数据:

输出nnn个非负整数a1,a2,…,ana_1,a_2,\dots,a_na1,a2,,an,满足以上条件。

输入输出样例 #1

输入 #1

1 4 -1 34 367 -1 3178 -1 -1 3333

输出 #1

3 33 333 3333

说明/提示

对于100%100\%100%的数据,1≤n,∑n≤1051\le n,\sum n\le 10^51n,n105∑[pi=−1]+∑[si=−1]=n\sum [p_i=-1]+\sum [s_i=-1]=n[pi=1]+[si=1]=n保证有合法解。

  • Subtask 1(10 pts):n≤4n\le 4n4pi,si<2p_i,s_i<2pi,si<2
  • Subtask 2(10 pts):n≤100n\le 100n100
  • Subtask 3(20 pts):pi,si<2p_i,s_i<2pi,si<2
  • Subtask 4(60 pts):无特殊限制。

C++实现

#include<iostream>usingnamespacestd;#definelllonglongll p[100010];ll s[100010];llfind(intn){for(inti=0;i<=n;i++)if(p[i]!=-1&&s[i+1]!=-1)returnp[i]^s[i+1];}voidupdate(ll val,intn){for(inti=0;i<=n;i++){if(p[i]!=-1&&s[i+1]==-1)s[i+1]=val^p[i];elseif(p[i]==-1&&s[i+1]!=-1)p[i]=val^s[i+1];elseif(p[i]==-1&&s[i+1]==-1){p[i]=p[i-1];s[i+1]=val^p[i];}}}intmain(){intT;cin>>T;while(T--){intn;cin>>n;for(inti=1;i<=n;i++)cin>>p[i];for(inti=1;i<=n;i++)cin>>s[i];ll sum=find(n);//查找所有数异或的结果,记为 sumupdate(sum,n);//还原 p 数组和 s 数组for(inti=1;i<=n;i++)cout<<(p[i]^p[i-1])<<" ";cout<<endl;}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/768398/

相关文章:

  • ESP32C3的I2S音频开发板DIY全记录:从PCM5102A电路焊接、配置到播放测试音
  • Pearcleaner:macOS上彻底清理应用残留文件的免费开源工具
  • AI教材编写指南:利用AI工具实现低查重,轻松完成教材创作!
  • vCenter 6.7升7.0U3N后,vCLS虚拟机报错启动不了?一文讲清BIOS里那个关键设置
  • 接口及事件监听
  • TwinCAT C++项目避坑指南:封装一个稳定可靠的CoE(SDO)读写工具类
  • 3分钟快速解密:如何轻松转换网易云音乐NCM格式文件
  • clawface:动态网页爬虫框架解析与实战指南
  • GenAI-MCP:大模型工具调用的标准化协议与实践指南
  • 基于深度矩阵分解的电商用户长短期兴趣建模,深度矩阵分解:破解电商用户长短期兴趣建模的终极指南
  • 基于MCP协议自建Codex代码生成服务器:私有化AI编程助手部署指南
  • MySQL如何解决版本迁移中的触发器冲突_先备份后手动重建
  • Windows Defender移除终极指南:windows-defender-remover工具深度解析与实战应用
  • 学术研究效率提升:从文献管理到可复现编程的全流程技能指南
  • Browser Ops:为OpenClaw构建智能、可恢复的浏览器工作流内核
  • Spring Framework 入门第一天:掌握核心容器 IOC 与 DI
  • 从汽车设计到游戏建模:B样条曲线是如何成为工业软件‘隐形冠军’的?
  • DistroAV终极指南:如何在MacOS上快速解决OBS-NDI插件问题
  • 新手别怕!用IDA Pro分析CTF PWN栈溢出题,保姆级实战复盘(附Python脚本)
  • 别只做线性回归了!用SPSS曲线估计与Logistic回归,挖掘数据中的非线性关系与分类规律
  • SQL Developer 连接类型 (Connection Type) :SID 和 Service Name的区别
  • 大语言模型幻觉问题解析与抗幻觉技术实践
  • Windows WSL环境搭建OpenClaw机器人开发环境全攻略
  • 终极英雄联盟回放分析工具:5步掌握ROFL播放器的完整使用指南
  • 别再让GPU内存浪费了!用vLLM的PagedAttention技术,让你的LLaMA推理吞吐量提升24倍
  • 自动化发布流程:使用skill-release-cop实现CI/CD版本管理
  • Python股票诊断工具:基于开源库构建自动化基本面分析框架
  • 梦笔记20260507
  • Vue3项目实战:Element Plus表格拖拽排序的‘坑’我都帮你踩完了(SortableJS集成指南)
  • 智能体输入编译器:将自然语言转化为结构化指令的工程实践