news 2026/9/21 22:50:43

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/19 20:58:02

CCM CRM单相有源功率因数校正boost PFC电路仿真探索

CCM CRM单相有源功率因数校正boost PFC电路仿真。 有以下三种 1.CCM模式。 电压电流双闭环PI控制。 2.CCM模式。 电压外环PI&#xff0c;电流内环滞环。 3.CRM模式。 电压外环PI&#xff0c;内环电流比较。 运行环境为matlab/simulink等 在电力电子领域&#xff0c;功率因数校…

作者头像 李华
网站建设 2026/9/21 10:37:18

使用EmotiVoice避免版权纠纷的正确姿势

使用EmotiVoice避免版权纠纷的正确姿势 在内容创作日益依赖AI语音的今天&#xff0c;一个声音可能带来流量&#xff0c;也可能引来一纸律师函。随着TTS&#xff08;文本转语音&#xff09;技术普及&#xff0c;越来越多开发者面临一个棘手问题&#xff1a;如何让AI“说话”既自…

作者头像 李华
网站建设 2026/9/21 11:25:37

有声内容创作者福音:EmotiVoice一键生成带情绪的朗读音频

有声内容创作者福音&#xff1a;EmotiVoice一键生成带情绪的朗读音频 在播客制作人熬夜剪辑旁白、游戏开发者为NPC配音预算发愁、网文平台苦于有声书产能瓶颈的今天&#xff0c;一个开源项目正悄然改变语音内容生产的底层逻辑——EmotiVoice。它让一段3秒的录音&#xff0c;变成…

作者头像 李华
网站建设 2026/9/22 0:27:01

Java中PageHelper的拦截器实现机制

注意&#xff1a;Mapper中的select语句一定不能加分号&#xff0c;否则会报语法错误&#xff01;&#xff01;&#xff01;&#xff01;PageHelper的核心是基于MyBatis实现分页&#xff0c;相当于一个“拦截器”&#xff0c;通过动态篡改SQL语句、拦截执行流程完成分页逻辑注入…

作者头像 李华
网站建设 2026/9/20 5:37:17

为什么EmotiVoice成为开发者最青睐的开源TTS引擎?

为什么EmotiVoice成为开发者最青睐的开源TTS引擎&#xff1f; 在虚拟主播直播带货、AI客服深夜答疑、游戏角色情绪爆发的今天&#xff0c;语音早已不再是冷冰冰的文字朗读。用户期待的是“有温度”的声音——能愤怒、会惊喜、懂克制&#xff0c;甚至带着一丝疲惫的叹息。然而&a…

作者头像 李华
网站建设 2026/9/21 11:36:08

18、量子测量、信息增益与量子信息理论的哲学思考

量子测量、信息增益与量子信息理论的哲学思考 1. 量子测量与信息增益 1.1 信息增益的衡量方式 在量子测量中,信息增益有多种衡量方式,这里主要关注通过优势关系(majorization relation)和熵不等式来表达的信息增益。 优势关系 优势关系的直观解释是,如果 (x \prec y)…

作者头像 李华