news 2026/9/2 23:32:59

Codeforces Round 1069 (Div. 2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Codeforces Round 1069 (Div. 2)

A. Little Fairy’s Painting

ideas:

我感觉题目一点都不好读懂
题目的意思是:要去填充1e181e^{18}1e18个格子,有无限种颜色,给出n个,找规律去填充后面的。
比如案例三:
58 10 15 20 25 5 \\ 8\ 10\ 15\ 20\ 25 \\5810152025
第0个位置的颜色数是8,第一个是10,这样不同的颜色数就是2,每一个数代表不同的颜色,这个案例中就是有5个不同颜色的数。此时第n+1位就填5,此时不同颜色数增加到6(因为5不再原来的数组中)。
后续填充的规则是:不同颜色数作为颜色编号。
那么当,不同颜色数等于前n位颜色编号中的某一位时,不同颜色数就不再增加,答案也就因此固定。

code:

intn;cin>>n;set<int>st;for(inti=0;i<n;i++){cin>>a[i];st.insert(a[i]);}intk=st.size();intans=INT_MAX;for(inti=0;i<n;i++){if(a[i]>=k)ans=min(ans,a[i]);}cout<<ans<<endl;

B. XOR Array

ideas:

题目含义是:
1.在l−rl-rlr这个区间内的XOR的结果为0;
2.在l−rl-rlr这个区间外的XOR的结果不为0。
结论:
a[l]⊕a[l+1]⊕...⊕a[r]=pre[r]⊕pre[l−1]a[l] ⊕ a[l+1] ⊕ ... ⊕ a[r] = pre[r] ⊕ pre[l-1]a[l]a[l+1]...a[r]=pre[r]pre[l1]

推导:
a1⊕a2⊕a3....⊕al....⊕ar=pre[r]a_1\oplus a_2 \oplus a_3.... \oplus a_l.... \oplus a_r = pre[r]a1a2a3....al....ar=pre[r]
a1⊕a2⊕a3....⊕al=pre[l]a_1\oplus a_2 \oplus a_3.... \oplus a_l = pre[l]a1a2a3....al=pre[l]
根据异或的性质:
a⊕a=0a\oplus a = 0aa=0
很轻易得出上面的结论。

要想到答案为0,得出:
pre[r]=pre[l−1]pre[r] = pre[l-1]pre[r]=pre[l1]

于是我们可以得出构造方法:
1.只需要pre[r]=pre[l−1]pre[r] = pre[l-1]pre[r]=pre[l1]
2.其他位置的任意,我们选择pre[i]=ipre[i]=ipre[i]=i
3.我们构造的a[i]a[i]a[i]数组是前缀异或值,反解计算出每一位的值。

code:

intn,l,r;cin>>n>>l>>r;vector<int>pre(n+2);for(inti=0;i<n+2;i++)pre[i]=i;pre[l-1]=pre[r];for(inti=0;i<n;i++){cout<<(pre[i]^pre[i+1])<<" ";}cout<<endl;

C. Needle in a Haystack

ideas:

一个模拟题。
思路是:
1.可行性检查:
如果长度一样,一个字符t中没有就输出"Impossible"
如果有一个字符的次数,t中不够,就输出"Impossible"
2.分离字符:
把s中的每一个字符分离出来,剩下的字符串排序
3.合并字符:
对于每一个s中的字符,找到合适的位置放进去就可以
最后把剩余的字符加进去。

code:

string s,t;cin>>s>>t;map<char,int>mpa,mpb;for(autoc:s)mpa[c]++;for(autoc:t)mpb[c]++;//可行性检查for(autoc:s){if(mpb[c]<mpa[c]){cout<<"Impossible"<<endl;return;}}//分离字符string tmp="";for(charc='a';c<='z';c++){intd=mpb[c]-mpa[c];tmp+=string(d,c);}sort(tmp.begin(),tmp.end());//合并字符string ans="";intpos=0;for(autoc:s){while(pos<tmp.size()&&tmp[pos]<c){ans+=tmp[pos];pos++;}ans+=c;}while(pos<tmp.size()){ans+=tmp[pos];pos++;}cout<<ans<<endl;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 6:48:05

EmotiVoice致力于提升人类沟通质量

EmotiVoice&#xff1a;让语音更像“人”&#xff0c;也更像“你” 在虚拟助手机械地念出天气预报、有声书用千篇一律的语调讲述动人故事的时代&#xff0c;我们早已习惯了语音合成中的“无感”输出。然而&#xff0c;当情感缺失成为人机沟通的最大障碍之一&#xff0c;真正的突…

作者头像 李华
网站建设 2026/9/1 20:47:53

论文鹿AI——快速论文降重

谈及论文降重&#xff0c;这可是众多即将毕业的学生面临的一大难题。撰写论文时&#xff0c;不可避免地要旁征博引&#xff0c;引用名人名言、讲述名人故事&#xff0c;运用公式&#xff0c;清晰阐明定义&#xff0c;这些内容注定了论文会有较高的重复率。即便到后期费尽心思修…

作者头像 李华
网站建设 2026/9/1 22:05:21

11、概率理论的 C∗ -代数表示:基础与原理

概率理论的 C∗ -代数表示:基础与原理 在概率理论的研究中,有许多关键概念和原理对于理解系统的状态、事件以及它们之间的相互作用至关重要。本文将深入探讨概率理论中的一些核心概念,包括测试、状态、级联、条件化、变换、效应等,并介绍相关的公理和性质。 1. 基本原理 …

作者头像 李华
网站建设 2026/9/2 21:24:17

全面体验 Grok API 中转站(2025 · Grok 4 系列最新版)

&#x1f680; 全面体验 Grok API 中转站&#xff08;2025 Grok 4 系列最新版&#xff09; 无需复杂注册 支持 Grok 4 / 4 Heavy / 4.1 中文使用更友好 本指南基于当前 Grok 镜像站与中转平台的最新模型更新情况整理&#xff0c;面向希望快速、低门槛体验 Grok 最新模型能…

作者头像 李华
网站建设 2026/9/1 23:15:10

17、量子测量中的贝叶斯更新与信息增益

量子测量中的贝叶斯更新与信息增益 1. 引言 在许多情况下,从测量结果中学习可以被视为更新对某些变量的概率分布。贝叶斯学派认为,这种更新应根据条件化规则进行。在量子力学理论中,有一个规则告诉我们,在观察到测量结果后如何更新系统的状态。量子系统的状态与潜在测量的…

作者头像 李华