博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces-940D. Alena And The Heater
阅读量:7170 次
发布时间:2019-06-29

本文共 1457 字,大约阅读时间需要 4 分钟。

给定n(5 ≤ n ≤ 105,接着给出长度为n的序列a和字符串b

 

b1 = b2 = b3 = b4 = 0.

For all 5 ≤ i ≤ n

  • bi = 0 if ai, ai - 1, ai - 2, ai - 3, ai - 4 > r and bi - 1 = bi - 2 = bi - 3 = bi - 4 = 1
  • bi= 1 if ai, ai - 1, ai - 2, ai - 3, ai - 4 < l and bi - 1 = bi - 2 = bi - 3 = bi - 4 = 0
  • bi = bi - 1 otherwise

则b中出现00001可确定l下界,11110可确定r上界

 

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 const int maxn = 1e5 + 10; 7 int A[maxn]; 8 char S[maxn]; 9 int n;10 11 int _min(int i) {12 int t = A[i];13 for (int j = i - 1; j > i - 5; j--) {14 t = min(t, A[j]);15 }16 return t;17 }18 19 int _max(int i) {20 int t = A[i];21 for (int j = i - 1; j > i - 5; j--) {22 t = max(t, A[j]);23 }24 return t;25 }26 27 int main() {28 scanf("%d", &n);29 for (int i = 0; i < n; i++) scanf("%d", &A[i]);30 scanf("%s", S);31 int zero = 0, one = 0;32 int r = 1e9;33 int l = -r;34 for (int i = 0; i < n; i++) {35 if (S[i] == '0') {36 if (one >= 4) {37 r = min(r, _min(i) - 1);38 }39 one = 0;40 zero++;41 } else if (S[i] == '1') {42 if (zero >= 4) {43 l = max(l, _max(i) + 1);44 }45 zero = 0;46 one++;47 }48 }49 printf("%d %d\n", l, r);50 return 0;51 }

 

转载于:https://www.cnblogs.com/xFANx/p/8570777.html

你可能感兴趣的文章
为什么要进行项目总结呢?又如何进行项目总结呢?
查看>>
iOS——重写Cell分割线
查看>>
window与linux下,php的redis扩展安装
查看>>
VirtualBox虚拟机网络设置
查看>>
Mongodb 之 安全权限控制
查看>>
httpclient发送网络请求
查看>>
可自动切换登录不同系统测试实例
查看>>
jQuery Validate
查看>>
Building IKEv1 and IKEv2 on CentOS 7
查看>>
H5项目搭建
查看>>
js年龄限制最大最小日期,对闰年进行判断
查看>>
事务相关概念
查看>>
OAuth2
查看>>
PIKA 安装
查看>>
TPshop的支付证书url直接访问漏洞
查看>>
MyEclipse 快捷键
查看>>
12.4 linux任务计划cron chkconfig工具 systemd管理服务 unit介绍 target介绍
查看>>
11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志
查看>>
mysql数据库如何优化SQL
查看>>
2.27 linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理...
查看>>