尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Codeforces Round 1064 (Div. 2)

Codeforces Round 1064 (Div. 2)
📅 发布时间:2026/6/20 6:07:04

Codeforces Round 1064 (Div. 2)

A. Same Difference

https://codeforces.com/contest/2166/problem/A
题目给定字符串,期望将字符串的字母全变成同一种,求最少的操作次数,每一次操作可以将Si改变为Si+1处的字母,所以关键观察,字符串末尾的字符不会改变
那么我们可以从后往前遍历一遍,记录与末尾字符不同的字符数量即可

#include<iostream>
#include<string>
using namespace std;
void solve(){int n,ans=0;string x;cin>>n>>x;for(int i=x.size()-1;i-1>=0;i--){if(x[i-1]!=x[i]){ans++;x[i-1]=x[i];}}cout<<ans<<"\n";
}
int main(){std::ios::sync_with_stdio(false);cin.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

B. Tab Closing

https://codeforces.com/contest/2166/problem/B
这道题其实也很简单但是,我没有全部考虑,浪费了一些时间,就是关闭网页,可以把网页分为两种状态挤压和未挤压,未挤压就把鼠标放在最左边,挤压就把鼠标放在最右边,关键观察答案只有两种情况,
一开始我没注意到,模拟做的,超时了,然后又想麻烦了一点点,不过最后Ac了,但是这其实很简单;

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
void solve(){double a,b,now_l=0;int n,ans=0;cin>>a>>b>>n;if(b>=a){cout<<1<<"\n";return;}else{cout<<2<<"\n";return;}return ;
}
int main(){std::ios::sync_with_stdio(false);cin.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

C. Cyclic Merging
https://codeforces.com/contest/2166/problem/C
这个题一开始没做出来,也就是没想明白,先大体回忆一下题目大意,给你一串数字,头尾相连,相邻两个可以进行消除操作,消耗两个中较大数字的体力,求最后只剩下1个数字时消耗体力的最小值,一开始我想到了合并果子(也就是哈夫曼树),但是想了一下,是错误的。我们可以这样想一下,最终剩下的一定是最大的那个才可以使代价最小,并且要用最小的数字和他附近大于他的最小数字进行合并,答案是最小的,其实题目原本的意图是想让参赛者进行模拟,但是有一种数学方法可以很快的解决这个问题:image

还有一种可以理解的方法:
image
数学方法的代码如下:

//cf题解
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6 + 5;
ll a[N];
int main()
{int t, n, m, i;ll k;scanf("%d", &t);while(t--){scanf("%d", &n);m = 0;for(i = 0; i < n; i++){scanf("%lld", a + i);if(a[i] > a[m])m = i;}a[n] = a[0];k = -a[m];for(i = 0; i < n; i++)k += max(a[i], a[i + 1]);printf("%lld\n", k);}return 0;
}

模拟做法如下:

//cf题解
#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int t;cin >> t;while (t--) {int n;cin >> n;list<int> alive;int a[n];list<int>::iterator w[n];auto c_next = [&alive](const list<int>::iterator& it) {return next(it) == alive.end() ? alive.begin() : next(it);};auto c_prev = [&alive](const list<int>::iterator& it) {return it == alive.begin() ? --alive.end() : prev(it);};auto hole = [&](const list<int>::iterator& it) {return a[*it] <= min(a[*c_next(it)], a[*c_prev(it)]);};for (int i = 0; i < n; ++i) {cin >> a[i];w[i] = alive.insert(alive.end(), i);}queue<int> q;{int i = 0;for (auto it = alive.begin(); it != alive.end(); ++it, ++i)if (hole(it))q.push(i);}long long ans = 0;bool mark[n] = {};while (alive.size() > 1) {auto i = q.front();q.pop();if (mark[i])continue;mark[i] = true;auto it = w[i];ans += min(a[*c_next(it)], a[*c_prev(it)]);auto jt = c_next(it);alive.erase(it);it = jt;if (hole(it))q.push(*it);it = c_prev(it);if (hole(it))q.push(*it);}cout << ans << '\n';}
}

相关新闻

  • 2025年诚信的网站建设信誉推荐榜
  • AtCoder Beginner Contest 433 (A~D)
  • 2025年推荐几家短视频拍摄顾客好评榜

最新新闻

  • 道路运输许可证丢了登报怎么线上办理?正规办理渠道与流程 - 速递信息
  • Claude Opus 4.7深度解析:长上下文、自主检查与多模态语义编织
  • 嵌入式GUI开发实战:Alpha混合与位图绘制优化指南
  • 2026 年 6 月亨得利最新官方正式深度辟谣|拆解虚假资讯牟利底层逻辑,亨得利全直营门店资质全景深度解析 - 亨得利官方维修中心
  • 费亨得利官方公正辟谣|2026年6月最新声明:亨得利全国正规服务渠道权威公示 - 亨得利官方维修中心
  • iOS自动化测试演进:从WDA底层原理到Appium实战框架选型

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号