五月杂题记

news/2024/5/19 3:39:05

又鸽了一个月。OwO

5.4

CF1969B

先考虑将相同颜色的缩成一块。这样,串一定是 010101...101010...,我们同时记录一个块内字符的个数,记为 \(len_i\)

题目要求将所有的一放在零的后面。

我们从第一个 \(1\) 块开始遍历,每次 \(i += 2\)。那么 \(i + 1\) 一定是 \(0\)。题目中的操作相当于将 \(1\) 块与一个 \(0\) 拼在一起,然后将 \(0\) 移至最前段,总共移 \(len_{i+1}\) 次到下一块 \(1\) 或末尾。

当我们移至下一块一后,两段一拼在了一起。后面便一起移动。那么我们当前操作的序列长为 \(\sum_{j=1}^i len_j \times col_j\),用个变量 \(now\) 记着就行。

每一完整的移动代价为 \((now+1)\times len_{i+1}\),答案累加即可。

点击查看代码
// Author : Lucky_Cloud
#include <bits/stdc++.h>
#define int long long
#define pii pair<int, int>
#define db double
using namespace std;int read() {int res = 0, f = 1; char c = getchar();while (c < '0' || c > '9') {if (c == '-') f = -1;c = getchar();}while (c >= '0' && c <= '9') {res = (res << 1) + (res << 3) + (c ^ 48);c = getchar();}return f == -1 ? -res : res;
}const int N = 2e5 + 5;
int t, len[N], cnt;
char s[N];void solve() {scanf("%s", s + 1);int n = strlen(s + 1);for (int i = 1; i <= n + 1; ++i) len[i] = 0;len[cnt = 1] = 1;int p = 1;for (int i = 2; i <= n; ++i) {if (s[i] != s[p]) cnt++, p = i;len[cnt]++;}int be = 1;if (s[1] == '0') be++;int ans = 0;// cout << cnt << ' ' << be << ' ';int now = 0;for (int i = be; i <= cnt; i += 2) {now += len[i];ans += (now + 1) * len[i + 1];}cout << ans << endl;
}signed main() {t = read();while (t--) solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/28339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

高一下三调|ssy的队列|hash dp|题解

SSY的队列题目链接 解析: 考场上看到这个题第一眼是绝望的,毕竟数论咱是一窍不通. 但是往下细看了看这个数据范围,N是很小的,就想了想模拟. 然而只骗到10分. 这个题绩效较高的解法是状压dp,在N<15的范围之内均可薄纱(ppllxx_9G也是成功拿到这70 rank 1了 orz),可得70,但是一…

Git——关于Git的一些补充(1)

Git——关于Git的一些补充(1) 提示:图床在国外且动图比较多的情况下,需要时间加载。 目录: 目录Git——关于Git的一些补充(1)提示:图床在国外且动图比较多的情况下,需要时间加载。目录:Git基础Git文件的生命周期Git文件的存储空间的划分Git安装过程补充说明Git的撤销…

UHF RFID 使用小记

1,概念 UHF:Ultra High Frequency;超高频。 RFID:Radio Frequency Identification;射频识别。 电子标签:即RFID标签,是RFID的俗称。 PDA:Personal Digital Assistant;个人数字助理。 发卡器:对卡进行读写操作的工具。 EPC:Electronic product code;电子产品代码。 …

文学作品|在线阅读

分享文字和音频类的文学作品,陶冶情操,宣传正能量。#wh-tab{font-size:20px;text-align:center;}a:link {text-decoration: none;}td{font-size: 16px;text-align:center;}td:empty:after{content:虚位以待;color:grey;} 前言 若有空,将古今中外的常见文学作品挂载在网络上,…

[转]ptp(precision time protocol)时钟同步

一、介绍1:什么是ptpPTP(Precision Time Protocol) 是一个通过网络同步时钟的一个协议。当硬件支持时,PTP 精度能达到亚微秒,比 NTP(Network Time Protocol)精度更高。 2:ptp应用场景1)数据中心数据中心需要NTP/PTP同步,以确保集群的时域运行。同步对于虚拟机计算是必不…

3. SpringBoot 整合第三方技术

1. 整合Junit 一般来说是不需要进行处理的 ,因为在创建SpringBoot 工程时 ,会自动整合junit​的 要说怎么配置的话?也可以写一下相关的配置:以下就是SpringBoot 整合 Junit 相关步骤导入相关依赖 <dependency><groupId>org.springframework.boot</groupId&g…

5.5

推一下手机壁纸

[转]IRIG-B码授时工作原理

在授时设备中有一种是B码授时的,但是大部分人不太清楚何为B码授时?这种类型的授时工作原理是怎么样? 首先我们要知道什么是B码,然后再介绍它的授时工作原理,B码是一种电力术语,它是IRIG-B码的通俗叫法,英文全称是inter-range instrumentationgroup-B,是在2020年公布的电…