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

C. Left and Right Houses

Problem - C - Codeforces

题目分析

<1>0:想被分割至左边; 1:想被分割至右边

<2>使得左右两侧均有一半及其以上的人满意(我*******)

<3>答案若有多个,取最接近中间位置的答案

<4>使用前缀和确定到每个位置时有多少个 “1”; 再遍历前缀和数组;此时可以求出满意人数

代码:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 3e5 + 9;char a[N];int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t; cin >> t;while(t--){int n; cin >> n; string s; cin >> s;s = ' ' + s + '0'; //前缀和预处理int f[n + 5] = {0};for(int i = 1; i <= n + 1; i++) //房屋两边也能铺路{f[i] = f[i - 1] + (s[i] - '0');}int p = -1;for(int i = 0; i <= n + 1; i++){int l = i - f[i]; //左边满意人数int r = f[n + 1] - f[i]; //右边满意人数if(2 * l >= i && r * 2 >= n - i){if(abs(n - 2 * i) < abs(n - 2 * p)) p = i;}}cout << p << '\n';}
}

http://www.lryc.cn/news/321251.html

相关文章:

  • 缓存与内存:加速你的Python应用
  • Go语言之函数、方法、接口
  • 【Week Y2】使用自己的数据集训练YOLO-v5s
  • 蓝桥杯--基础(哈夫曼)
  • 【Redis内存数据库】NoSQL的特点和应用场景
  • JavaScript基础知识2
  • Linux之线程同步
  • 03 龙芯平台openstack部署搭建-keystone部署
  • 定义了服务器的端口号和Servlet的上下文路径
  • AI论文速读 | UniST:提示赋能通用模型用于城市时空预测
  • rabbitmq-spring-boot-start配置使用手册
  • 操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记
  • Go语言中的锁与管道的运用
  • 前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框
  • 关于MySQL模糊搜索不区分大小写
  • 论文阅读——MoCo
  • ARM 寄存器学习:(一)arm多种模式下得寄存器
  • 【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host
  • 备战蓝桥杯---牛客寒假训练营2VP
  • QCustomPlot-绘制X轴为日期的折线图
  • 腾讯春招后端一面(算法篇)
  • Filebeat rpm方式安装及配置
  • 深入挖掘C语言之——枚举
  • 【源码阅读】EVMⅢ
  • .Net Core 中间件验签
  • Elasticsearch:从 Java High Level Rest Client 切换到新的 Java API Client
  • 七:分布式
  • 1-postgresql数据库高可用脚本详解
  • 【亲测】Onlyfans年龄认证怎么办?Onlyfans需要年龄验证?
  • ASP.NET Core新特性