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

Codeforces Round 954 (Div. 3)(A~E)

目录

A. X Axis

B. Matrix Stabilization

C. Update Queries

D. Mathematical Problem


A. X Axis

Problem - A - Codeforces

直接找到第二大的数,答案就是这个数与其他两个数的差值的和。

void solve()
{vector<ll>a;for (int i = 1; i <= 3; i++){int x;cin >> x;a.push_back(x);}sort(a.begin(), a.end());cout << a[2]-a[1]+a[1]-a[0] << "\n";}

B. Matrix Stabilization

Problem - B - Codeforces

我们发现符合题意的每个数是互不影响的,即改变了其中一个不会影响到另一个,直接找到所以符合题意的数,再将这个数变成周围数的最大值。

int MX(int a, int b, int c, int d)
{vector<int>q;q.push_back(a);q.push_back(b);q.push_back(c);q.push_back(d);sort(q.begin(), q.end());return q[3];
}
void solve()
{memset(f, 0, sizeof(f));int n, m;cin >> n >> m;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> f[i][j];}}for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (f[i][j] > f[i - 1][j] && f[i][j] > f[i][j - 1] && f[i][j] > f[i + 1][j] && f[i][j] > f[i][j + 1]){f[i][j] = MX(f[i - 1][j], f[i + 1][j], f[i][j - 1], f[i][j + 1]);}}}for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout<< f[i][j]<<" ";}cout << "\n";}cout << "\n";
}

C. Update Queries

Problem - C - Codeforces

仔细看就会发现这个操作数组顺序其实没多大关系,只要找到需要操作的所以,再一次填入已经排好序的元素即可。

ll d[200010];
void solve()
{memset(d, 0, sizeof(d));ll n, m;cin >> n >> m;string s1, s2;cin >> s1;int x;for (int i = 1; i <= m; i++) cin >> x, d[x]++;cin >> s2;sort(s2.begin(), s2.end());int c = 0;for (int i = 0; i < s1.size(); i++){if (d[i + 1]&&c<s2.size()){s1[i] = s2[c++];}}cout << s1 << "\n";
}

D. Mathematical Problem

Problem - D - Codeforces

考虑n大于2的情况

当含有元素0时,那么答案就是0,因为可以将他们全部相乘。

当所以元素都为1时,答案就是1,可以全部相乘。

其他情况,答案就是不为1的所有元素的和。

void solve()
{int n;cin >> n;string s;cin >> s;vector<int> cnt(10);int sum = 0;for (int i = 1; i < n; i++) {if (s[i] <= '1') {cnt[s[i] - '0']++;}sum += s[i] - '0';}constexpr int inf = 1e9;int ans = inf;for (int i = 0; i + 2 <= n; i++) {cnt[s[i + 1] - '0']--;sum -= s[i + 1] - '0';int x = stoi(s.substr(i, 2));cout << x << ' ' << sum << ' ' << cnt[0] << ' ' << cnt[1] << '\n';int res;if (cnt[0] + (x == 0) > 0) {res = 0;}else if (cnt[1] + (x == 1) == n - 1) {res = 1;}else {res = (x != 1 ? x : 0) + sum - cnt[1];}ans = min(ans, res);cnt[s[i] - '0']++;sum += s[i] - '0';}cout << ans << '\n';
}
http://www.lryc.cn/news/389563.html

相关文章:

  • 基于Java微信小程序同城家政服务系统设计和实现(源码+LW+调试文档+讲解等)
  • [21] Opencv_CUDA应用之使用Haar级联的对象检测
  • CXL:拯救NVMe SSD缓存不足设计难题-2
  • Opencv学习项目6——pyzbar
  • Switch 刷安卓11 (LineageOS 18.1) 大气层双系统图文教程
  • Spring Boot与Spring Batch的深度集成
  • RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍
  • Kotlin基础——异步和并发
  • 消防认证-防火卷帘
  • SpringBoot3.3集成knif4j-swagger文档方式和使用案例
  • 老年服务与管理实训室:制定教学模式
  • 4、DDD、中台和微服务的关系
  • 【ACM出版,马来西亚-吉隆坡举行】第四届互联网技术与教育信息化国际会议 (ITEI 2024)
  • 走进IT的世界
  • Linux 时区文件编译器 zic【man 8 zic】
  • Springboot下使用Redis管道(pipeline)进行批量操作
  • Vue技巧大揭秘:自定义指令的力量与应用
  • HR人才测评,如何考察想象力?
  • Git命令远程分支的合并和本地分支的同步
  • 墨烯的C语言技术栈-C语言基础-003
  • RpcRrovider分发rpc服务(OnMessage和Closure回调)
  • 分解+降维+预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测
  • 【Python】MacBook M系列芯片Anaconda下载Pytorch,并开发一个简单的数字识别代码(附带踩坑记录)
  • 自定义控件动画篇(四)ObjectAnimator的使用
  • 实现List接口的ArrayList和LinkedList
  • 下拉选择输入框(基于elment-ui)
  • CPP入门:日期类的构建
  • springboot学习,如何用redission实现分布式锁
  • 【MySQL】如果表被锁可以尝试看一下事务
  • Datawhale - 角色要素提取竞赛