第一周 7.10-7.16

假装自己复活辣。

7.10

CF 689 D Friends and Subsequences

二分。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5 typedef long long LL;
 6 const int maxn = 2e5 + 10;
 7 int n, a[maxn], b[maxn];
 8
 9 // RMQ
10 int M[maxn][20], m[maxn][20];
11 void init()
12 {
13     for(int i = 1; i <= n; i++) M[i][0] = a[i];
14     for(int j = 1; (1 << j) <= n; j++)
15         for(int i = 1; i + ( 1 << j ) - 1 <= n; i++)
16             M[i][j] = max(M[i][j-1] , M[i+(1<<j-1)][j-1]);
17
18     for(int i = 1; i <= n; i++) m[i][0] = b[i];
19     for(int j = 1; (1 << j) <= n; j++)
20         for(int i = 1; i + ( 1 << j ) - 1 <= n; i++)
21             m[i][j] = min(m[i][j-1] , m[i+(1<<j-1)][j-1]);
22 }
23
24 int M_query(int l, int r)
25 {
26     int k = 0;
27     while( ( 1 << (k + 1) ) <= r - l + 1 ) k++;
28     return max(M[l][k], M[r-(1<<k)+1][k]);
29 }
30
31 int m_query(int l, int r)
32 {
33     int k = 0;
34     while( ( 1 << (k + 1) ) <= r - l + 1 ) k++;
35     return min(m[l][k], m[r-(1<<k)+1][k]);
36 }
37
38 int main(void)
39 {
40     scanf("%d", &n);
41     for(int i = 1; i <= n; i++) scanf("%d", a + i);
42     for(int i = 1; i <= n; i++) scanf("%d", b + i);
43     init();
44
45     LL ans = 0LL;
46     for(int l = 1; l <= n; l++)
47     {
48         int t1, t2;
49         int L = l, R = n, mid;
50
51         if(M_query(l, n) < m_query(l, n)) R = n + 1;
52         else while(L < R)
53         {
54             mid = L + (R - L) / 2;
55             if(M_query(l, mid) < m_query(l, mid)) L = mid + 1;
56             else R = mid;
57         }
58         t1 = R;
59
60         L = l, R = n;
61         if(M_query(l, n) - 1 < m_query(l, n)) R = n + 1;
62         else while(L < R)
63         {
64             mid = L + (R - L) / 2;
65             if(M_query(l, mid) - 1 < m_query(l, mid)) L = mid + 1;
66             else R = mid;
67         }
68         t2 = R;
69
70         ans = ans + t2 - t1;
71     }
72
73     printf("%I64d\n", ans);
74
75     return 0;
76 }

Aguin

时间: 2024-11-08 18:32:52

第一周 7.10-7.16的相关文章

Android 网易云课堂第一周笔记16/5/10

Android 网易云课堂第一周笔记 首先第一周的主要任务回顾,第一是Android环境的搭建和Android studio软件的安装使用.第二是android的hello word项目的构建,其他的项目的功能包括button的功能基本使用,比如页面的跳转,Toast,Intent等等,还有我认为最为重要的是Activity的生命活动的讲解,虽然老师在课堂上只是简单展示一下生命周期的几个内容,但我认为如果想玩好Activity的话,生命周期这一块一定要理解和掌握的,废话不多说直接进入正题. An

20155336 2016-2017-2《JAVA程序设计》第一周学习总结

# 20155336  2016-2017-2<JAVA程序设计>第1周学习总结 ## 教材学习内容总结 开学的第一周,带着些许的欣喜和好奇,听完了老师的第一堂课.说心里话学习JAVA仿佛观看一部英文影视作品一样头疼, 因为总会有许许多多相似的名字让你记得晕头转向.JAVA也是一样,什么JVM啊JRE啊JDK啊 (/(ㄒoㄒ)/~~)  等等一系列 的英文缩写,让人心神意乱~~但总体上对JAVA有了一个初步的了解.通过课上老师的介绍以及课下对JAVA书第一章的浏览, 我简单的了解了JAVA艰辛

[Linux内核分析第一周课程] 由C语言程序的汇编表示观察CPU寄存器与内存的互动

孟宁<Linux内核分析>第一周实验 作者:Zou Le 原创作品转载请注明出处. 课程信息: <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ---------------------------实验正文--------------------------- 本实验在实验楼64位LIinux虚拟机下进行. C代码如下: int increment5(int x) { return x + 5; }

网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型

C语言程序设计进阶_第一周:数据类型:整数类型.浮点类型.枚举类型 1.0数据类型 1.1整数类型 1.2浮点类型 1.3逻辑类型 1.4类型转换和条件运算 1.0数据类型 1 整数 char(%c), short, int(%d), long(%ld), long long(C99) 2 浮点数 float(%f), double(%lf), long double(C99) 3 逻辑 bool(C99) 4 指针 5 自定义类型 所表达的数的范围:char<short<int<flo

Mysql第一周

前言:好久不见,我又来写博客拉.上个月只写了几篇django-rest-framework的,而且还是根据官网的英文写的.干货不多,内心还是有点羞耻的…… 简单说下我11月去干嘛了.11月初美图给我发offer了,当时面试我也说了11月底可以去实习.感觉美图也是蛮有名气的嘛,就拿了这个offer了,现在我也是在厦门的美图公司实习,刚入职几天,正在疯狂打杂中.拿了offer后,内心那种不安全感,源于一个问题,“你行不行?”.面试时我当然自信地表现出I CAN DO IT咯,但有些东西得入职后才知道

Linux 学习第一周

第一周的学习成果 1.冯诺依曼体系2.终端类型:虚拟终端:ctrl+alt+F2~F6 /dev/tty/2~6图形化终端 ctl+alt+F2~F6 /dev/tty/13.cat /etc/shells 查看当前系统安装的shellecho $SHELL 查看当前使用何种shell4.type command5.which command6.enable command 查看已启用的内部命令-n 查看已禁用的内部命令 配合|wc -l 可查看禁用数量-a 查看所有内部命令7.hash 显示已

赵栋 201771010137 《面向对象程序设计(java)》第一周学习总结

<面向对象程序设计(java)>第一周学习总结第一部分:课程准备部分 平台名称 注册账号 博客园:www.cnblogs.com/ https://www.cnblogs.com/zd0421/ 程序设计评测:https://pintia.cn/ [email protected] 代码托管平台:https://github.com/ STPPKJ 中国大学MOOC:https://www.icourse163.org/ 17393165076 以下回答是或否 是否加入课程班级博客群 是 是否

20172323 2018-2019-1 《程序设计与数据结构》第一周学习总结

20172323 2018-2019-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章--概述 1.1 软件质量 软件工程(Software Engineering)是一门关于高质量软件开发的技术和理论的学科. 解决的问题:控制开发过程,实现高质量的软件 软件工程的目标 高质量软件的特征 1.2 数据结构 数据结构:计算机存储.组织数据的形式. 程序 = 数据结构 + 算法 软件 = 程序 + 软件工程 栈会颠倒数据的顺序,而队列可以保持数据的顺序. 第二章--算法分析 算法

学习Linux第一周所有命令总结

一周总结 开学第一周,总结这周所学知识点 以命令首字母顺序整理 alias 用来设置指令的别名 alias命令的作用只局限于该次登入的操作. 若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中. 或者存放在用户家目录的.bashrc中 用法 alias 新的命令='原命令 -选项/参数' unalias 别名 (删除别名) unalias -a 别名 (删除全部别名) 编辑家目录下配置文件(只在当前用户生效) vim ~/.bashr

结对项目第一周总结

结对项目——四则运算 阶段性总结 一.需求分析(第一周达成): 能够生成n道四则运算题,n可由使用者输入来控制 支持整数 支持分数 生成题目中含有括号 可以判断正误,如果错误会输出正确答案 统计正确率 扩展需求: 生成题目后存入文件 完成题目后从文件读入并进行判断 支持题目去重 支持繁體中文,简体中文,English 二.设计思路(同时输出UML类图): 以下是程序主体设计思路,各步骤具体操作详情请见注释: 由于本周可用的准备时间较长,我们选择直接进行真分数的操作.在java语言中并没有一个专门