Juju and Binary String(前缀和)

图论基础:从七桥问题到现代网络结构的数学语言 图论以点与边的抽象模型揭示现实世界中复杂关系的本质。从欧拉解决七桥问题出发,发展出度数、连通性、同构等核心概念,并通过邻接矩阵实现计算机化处理。其应用涵盖社交网络距离计算、死锁检测、资源分配优化及最小覆盖选址等。关键定理如握手定理、矩阵幂表示路径数,以及独立集与覆盖集的互补关系,构建了从理论到实践的完整体系。掌握图论,即掌握了理解与优化现代信息系统的底层逻辑。 阅读详情

Juju and Binary String

[Link](Problem - F - Codeforces)

题意

给你一个 01 01 01串 s t r str str长度为 n n n,这个串的权定为 o n e s n ( o n e s 为 1 的 数 量 ) \frac{ones}{n}(ones为1的数量) nones​(ones为1的数量)。现在需要让你选择若干不相交的子串使得满足所有子串的长度和为 m m m且将子串拼接起来后的串 t t t的权和原串相同,问你最少需要多少个子串。

思路

​ 首先 t t t中的 1 1 1的数量应该为 o n e s n m \frac{ones}{n}m nones​m,因为有整数个 1 1 1所以要满足 o n e s × m ≡ 0 ( m o d   n ) ones\times m\equiv 0 (mod\ n) ones×m≡0(mod n),否则无解。

​ 我们设 x = t 中 1 的 数 量 x=t中1的数量 x=t中1的数量,我们假设 s t r str str是一个环,如果一个连续长度为 m m m的子数组有 x x x个 1 1 1那么我们的答案就是 1 1 1或 2 2 2,不跨环即 1 1 1,跨环就是 2 2 2。

​ 设 c i c_i ci​为 s t r [ i . . . i + m − 1 ]   i f    i ≤ n − m + 1   e l s e    s t r [ 1... m − ( n − i + 1 ) ] + s [ i . . . n ] str[i...i+m-1]\ if\ \ i\le n - m + 1\ else\ \ str[1...m-(n-i+1)]+s[i...n] str[i...i+m−1] if  i≤n−m+1 else  str[1...m−(n−i+1)]+s[i...n] 中 1 1 1的数量,则有 ∣ c i + 1 − c i ∣ ≤ 1 \vert c_{i+1}-c_i\vert \le 1 ∣ci+1​−ci​∣≤1,因为 c i + 1 c_{i+1} ci+1​和 c i c_i ci​最多只有两位不同当且仅当这两位不同的时候 ∣ c i + 1 − c i ∣ = 1 \vert c_{i+1}-c_i\vert =1 ∣ci+1​−ci​∣=1。因此 c i → c i + 1 c_i\to c_{i+1} ci​→ci+1​的变化是不跳跃的即连续的。

​ 证 m a x ( c i ) ≥ x max(c_i)\ge x max(ci​)≥x:设 m a x ( c i ) < x max(c_i)<x max(ci​)<x,则 ∑ i = 1 n c i < n x \sum_{i=1}^n c_i < nx ∑i=1n​ci​<nx, ∑ i = 1 n c i = m × o n e s ( 每 个 1 会 出 现 m 次 ) \sum_{i=1}^n c_i=m\times ones(每个1会出现m次) ∑i=1n​ci​=m×ones(每个1会出现m次),即 m × o n e s < n x → x > o n e s n m m\times ones<nx\to x>\frac{ones}{n}m m×ones<nx→x>nones​m,与 x x x的定义不同即不成立,所以 m a x ( c i ) ≥ x max(c_i)\ge x max(ci​)≥x。

​ 证 m i n ( c i ) ≤ x min(c_i)\le x min(ci​)≤x:设 m i n ( c i ) > x min(c_i)>x min(ci​)>x,则 ∑ i = 1 n c i > x → m × o n e s > n x → x < o n e s n m \sum_{i=1}^{n}c_i>x\to m\times ones >nx \to x<\frac{ones}{n}m ∑i=1n​ci​>x→m×ones>nx→x<nones​m,与 x x x的定义不同不成立,所以 m i n ( c i ) ≤ x min(c_i)\le x min(ci​)≤x。

​ 所以 m i n ( c i ) ≤ x ≤ m a x ( c i ) min(c_i)\le x \le max(c_i) min(ci​)≤x≤max(ci​),并且 c i c_i ci​是连续的,所以 必定存在一个 c j = = x c_j==x cj​==x,因此答案不是 1 1 1就是 2 2 2。

​ 前缀和处理一下,对于大于等于 m m m的每个点判断一下是否成立即可。

Code

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 1e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int h[N], e[M], ne[M], w[M], idx;
void add(int a, int b, int v = 0) {
    e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx ++;
}
int n, m, k;
int a[N];
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    int T;
    cin >> T;
    while (T -- ) {
        cin >> n >> m;
        string str; cin >> str;
        int ones = 0;
        for (auto x : str)
            if (x == '1') ones ++;
        if ((LL)ones * m % n) {
            cout << "-1\n";
            continue ;
        }

        ones = (LL)ones * m / n;
        vector<int> s(n * 2 + 1);
        for (int i = 1; i <= n * 2; i ++) {
            s[i] = s[i - 1] + (str[(i - 1) % n] == '1');
            if (i >= m && s[i] - s[i - m] == ones) {
                if (i <= n) {
                    cout << 1 << '\n';
                    cout << i - m + 1 << ' ' << i << '\n';
                    break;
                }
                else {
                    cout << 2 << '\n';
                    cout << 1 << ' ' << i - n << '\n';
                    cout << n - (m - i + n) + 1 << ' ' << n << '\n';
                    break;
                }
            }
        }

    }
    return 0;
}

ByteTrack参数调优全攻略:从原理到实战(含YOLOv8示例) 本文深入解析了ByteTrack多目标跟踪算法的核心原理与参数调优策略。通过拆解其独特的两阶段关联机制,并结合YOLOv8检测器,提供了针对不同应用场景(如拥挤行人、高速车辆)的精细化参数调整指南与实战示例,旨在帮助开发者解决ID切换、目标丢失等工程落地难题,提升跟踪系统的鲁棒性与实用性。 阅读详情

相关推荐

Unreal Engine鸿蒙移植实战:环境配置、构建流程与性能优化指南

游戏引擎移植是跨平台开发中的关键技术环节,其核心原理在于通过适配目标操作系统的底层接口和工具链,实现同一套代码在不同硬件和软件环境下的高效运行。这项技术的价值在于最大化代码复用率,降低多平台维护成本,并能让应用快速触达新兴生态系统的用户。在移动游戏和XR应用领域,随着鸿蒙HarmonyOS生态的快速发展,将成熟的商业引擎如Unreal Engine迁移至此平台,成为开发者探索新市场机会的重要路径。本文聚焦于Unreal Engine项目向鸿蒙系统的移植实践,详细解析了从环境搭建、源码适配到构建打包的全链路流

weixin_29011395的博客 411

D. Binary String Sorting

【代码】D. Binary String Sorting。

yingxueyuhanling的博客 227

Frigate进阶玩法:如何用MQTT和Python脚本扩展你的自定义目标检测算法

本文详细介绍了如何通过MQTT和Python脚本扩展Frigate的自定义目标检测算法,无需修改源码即可实现特殊场景(如工业设备异常、农业病虫害识别)的高效检测。文章涵盖Frigate配置、外部检测服务构建、高级集成技巧及性能优化实践,帮助开发者灵活扩展智能监控能力。

weixin_42662293的博客 350

F. Juju and Binary String

Problem - F - Codeforces F. Juju and Binary String time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Thecutenessof a binary string is the number of11s divided by the length of the st...

ujn20161222的博客 325

概率论 知识图谱 + 实战案例解析

本文通过构建概率论知识图谱,系统梳理了从随机试验、概率、条件概率到随机变量与分布的核心概念及其内在联系。结合朴素贝叶斯分类器和蒙特卡洛模拟等实战案例,深入解析了条件概率、独立性及大数定律等理论如何应用于机器学习与实际问题求解,旨在帮助读者建立结构化思维,将理论有效转化为解决实际问题的能力。

weixin_29051193的博客 267

linux下redhat6.8(理论是都适用)安装oracle12c---详细教程

1、配置yum源 1)、删除Redhat自带的yum: (2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取(放在oracle文件中的centos yum):上传到linux中 进行安装 yum包链接:https://pan.baidu.com/s/1TxciCWEd7d-d4kGoea0L1w 提取码:eufp `` --注意后面两个安装包一起安装 ## 3)、更改系统yum源: 编辑rhel-source.repo文件,将其中的$releas

z931407229的博客 1149

14. Juju and Binary String

构造

theophania的博客 301

Matlab 轴承信号仿真+分析

文章目录项目说明1、信号仿真1.1 仿真公式1.2 信号参数设置1.3 代码实现2、仿真信号分析2.1 小波变换2.2 快速谱峭度 项目说明 本文主要解决两个问题: 1、仿真包含周期性冲击信号、随机干扰冲击信号、调制干扰信号以及随机噪声四个成分的故障轴承信号; 2、使用小波变换以及快速谱峭度对该仿真信号进行分析。 1、信号仿真 1.1 仿真公式 这里的仿真信号公式主要参考了包文杰学者的硕士论文《加权谱峭度故障诊断方法研究与应用》,列举公式如下: 周期性冲击信号仿真 随机干扰冲击信号仿真 调制

cocofisher的博客 9267

Codeforces Round #779 (Div. 2)

A.Marin and Photoshoot 对于任意 222 个 0 之间要保证有至少 222 个 1 。 #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 &gt

sky123博客 545

【图像去噪】论文复现:Mamba没Out!MaIR的Pytorch源码复现,跑通全流程,轻松解决环境配置问题,图文结合,明确MaIR创新点,与MambaIR对比,示意图与源码对应,清晰易懂,注释详细!

论文题目:MaIR: A Locality- and Continuity-Preserving Mamba for Image Restoration —— MaIR:用于图像恢复的局部性和连续性保持 Mamba【图像去噪】论文精读:MaIR: A Locality- and Continuity-Preserving Mamba for Image Restoration【图像去噪】论文复现:Man!

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1114

让 ABAP 内表真正释放内存:从 CLEAR、FREE 到打破 Table Sharing 的实战技巧

ABAP内表内存管理的关键在于理解其运行时结构:DELETE操作仅逻辑删除行而不会释放内存,CLEAR或FREE才能真正回收内存。常见的误区包括误判空表状态和忽视内表共享机制。实际应用中,大表筛选后应采用VALUE表达式或逐行插入方式重建表体以释放内存。典型案例显示,正确处理内表内存可显著降低SAP Gateway和批处理程序的内存消耗,提升系统稳定性。开发时需结合调试工具观察内存状态,避免因共享机制导致无效回收。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

Codeforces Round #779 (Div. 2) 记录

Marin and Anti-coprime Permutation 思路(规律的做法) 场上很多人过,而自己完全没思路 划分解空间:考虑最大公约数可以取哪些值 可以多写几个排列发现规律。最终发现最大公约数只可能小于等于2.难度一下降低了! 当最大公约数等于2时,只有n为偶数的时候可以满足,并且奇数与偶数配对,偶数与奇数配对。每个n!2\frac{n!}{2}2n!​种。 int main() { int t; cin >> t; for(int i = 0;

nth2000的博客 680

科研必备:15款顶尖AI科研工具全面分析汇总(持续更新ing)

科研必备:15款AI科研工具全面分析汇总(持续更新ing)

Code_流苏:在代码中寻诗意,在实践中觅真知 9659

Hive(4)-Hive的数据类型

一.基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 INT int 4byte有符号整数 ...

weixin_30853329的博客 171

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

图论--最短路径(Dijkstra, Bellman-Ford)

最短路径

x13262608581的博客 278

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

图论--存储,转置,拓扑排序

邻接表,矩阵,转置,拓扑排序

x13262608581的博客 214

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

软考架构师·教材版|05 图论:Dijkstra 最短路径与 AOE 关键路径

拿着一张“路口和过路费”的图,一轮一轮算出起点到每个路口的最短时间;再拿“项目工序图”正推倒推两遍,说出最快几天完工、哪些工序一天都拖不得。Dijkstra 与关键路径两道常考计算题,方法对了五分钟拿分。

weixin_46316564的博客 217

数据结构之图论基础——从定义到常用术语

本文系统梳理图论核心知识点:从数据关系递进引出图的多对多特性,定义图为G=(V,E),强调顶点集非空;分类为有向/无向、有权/无权、连通/非连通;详解九大高频术语——完全图、稀疏/稠密图、权与网、邻接、度(含握手定理)、路径、子图、连通分量与生成树,并总结考研/面试必背公式与易错点,突出“边数计算”与“极大/极小”辨析,助力高效备考。

qq_34097230的博客 381

图论--广度优先搜索,深度优先搜索

广度优先,深度优先

x13262608581的博客 323

计算机考研 408 数据结构 图论-关键路径

AOE网中,顶点表示事件,边表示活动(带权值)。关键路径是源点到汇点的最长路径,其上的活动为关键活动。事件最早时间取入路最大值,事件最迟时间取出路最小值。活动最早开始时间e=出事件最早,最迟开始时间l=入事件最迟-持续时间,余量=vl−ve−持续时间。

查理的博客 168

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 255

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 324

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 302

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 598

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 140

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 23
上一篇: Gojou and Matrix Game(dp,推式子)
下一篇: Promising String (树状数组)
枉玊
博客等级 码龄6年 73粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值