[蓝桥杯2018初赛]递增三元组-双指针,枚举,排序,前缀和

题目描述
给定三个整数数组
A = [A1, A2, … AN],
B = [B1, B2, … BN],
C = [C1, C2, … CN],
请你统计有多少个三元组(i, j, k) 满足:

  1. 1 <= i, j, k <= N
  2. Ai < Bj < Ck
    输入
    第一行包含一个整数N。
    第二行包含N个整数A1, A2, … AN。
    第三行包含N个整数B1, B2, … BN。
    第四行包含N个整数C1, C2, … CN。
    1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000
    输出
    一个整数表示答案
    样例输入
    3
    1 1 1
    2 2 2
    3 3 3
    样例输出
    27

法一:

前缀和写法代码如下:

#include <iostream>
#include <cstring>
using namespace std;
const int N = 100010;
typedef long long LL;
int a[N], b[N], c[N], cnt[N], s[N], as[N], cs[N];int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> a[i], a[i]++;for (int i = 0; i < n; i++)cin >> b[i], b[i]++;for (int i = 0; i < n; i++)cin >> c[i], c[i]++;for (int i = 0; i < n; i++)cnt[a[i]]++;for (int i = 1; i < N; i++)s[i] = s[i - 1] + cnt[i];for (int i = 0; i < n; i++)as[i] = s[b[i] - 1];memset(s, 0, sizeof(s));memset(cnt, 0, sizeof(cnt));for (int i = 0; i < n; i++)cnt[c[i]]++;for (int i = 1; i < N; i++)s[i] = s[i - 1] + cnt[i];for (int i = 0; i < n; i++)cs[i] = s[N - 1] - s[b[i]];LL res = 0;for (int i = 0; i < n; i++) {res += (LL)as[i] * cs[i];}cout << res << endl;return 0;}

法二:

#include <iostream>
#include <algorithm>
using namespace std;
const int N =  100010;
int a[N], b[N], c[N];int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> a[i];for (int i = 0; i < n; i++)cin >> b[i];for (int i = 0; i < n; i++)cin >> c[i];sort(a, a + n);sort(b, b + n);sort(c, c + n);int p = 0, q = 0;long long res = 0;for (int i = 0; i < n; i++) {while (p < n && a[p] < b[i])p++;while (q < n && c[q] <= b[i])q++;res += p * (long long )(n - q);}cout << res << endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#如何安全、高效地玩转任何种类的内存之Span的秉性特点(二)

前言读完上篇《C#如何安全、高效地玩转任何种类的内存之Span的本质(一)》&#xff0c;相信大家对span的本质应该非常清楚了。含着金钥匙出生的它&#xff0c;从小就被寄予厚望要成为.NET下编写高性能应用程序的重要积木&#xff0c;而且很多老前辈为了接纳它&#xff0c;都纷纷…

word List 05

word List 05 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

[蓝桥杯2018初赛]星期一-日期计算

题目描述 整个20世纪(1901年1月1日至2000年12月31日之间)&#xff0c;一共有多少个星期一&#xff1f; (不要告诉我你不知道今天是星期几) 输出 输出一个整数表示答案 代码如下&#xff1a; #include <iostream> using namespace std; int sum 0;int main() {for (int …

《ASP.NET Core 微服务实战》-- 读书笔记(第6章)

第 6 章 事件溯源与 CQRS在本章&#xff0c;我们来了解一下随着云平台一同出现的设计模式我们先探讨事件溯源和命令查询职责分离&#xff08;CQRS&#xff09;背后的动机与哲学事件溯源简介事实由事件溯源而来我们大脑就是一种事件溯源系统&#xff0c;接收感官多种形式刺激&am…

数据结构----快速排序

数据结构----快速排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> int quickSort(int a[], int l, int h) {//快速排序int i l, j h, p a[l];while (i < j) {while (i<j&&a[j]>p) {//从右往左…

[蓝桥杯2018初赛]次数差-模拟,map容器

题目描述 x星球有26只球队&#xff0c;分别用a~z的26个字母代表。他们总是不停地比赛。 在某一赛段&#xff0c;哪个球队获胜了&#xff0c;就记录下代表它的字母&#xff0c;这样就形成一个长长的串。 国王总是询问&#xff1a;获胜次数最多的和获胜次数最少的有多大差距&…

编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理

很久没有写过 .NET Core 相关的文章了&#xff0c;目前关店在家休息所以有些时间写一篇新的????。这次的文章主要介绍如何在 Linux 上编译调试最新的 .NET Core 5.0 Preview 与简单分析 Span 的实现原理。微软从 .NET Core 5.0 开始把 GIT 仓库 coreclr 与 corefx 合并移动…

数据结构----归并排序

数据结构----归并排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #define N 100 void guiBingSort(int a[], int l, int h,int length) {//归并排序int mid (l h) / 2;int* b (int *)malloc(N*sizeof(int));i…

[蓝桥杯2018决赛]三角形面积-数论

海伦公式&#xff1a;三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p∗(p−a)∗(p−b)∗(p−c))三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p*(p-a)*(p-b)*(p-c))三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p∗(…

利用obfuscar对.NET应用进行混淆

背景发布客户端程序产品时&#xff0c;免不了会遇到一些怀有恶意或有强烈学习欲望的用户尝试对程序进行反编译。对于一些编译成本地指令的程序&#xff08;如C、C&#xff09;&#xff0c;编译后可读性低&#xff0c;反编译和破解成本较高&#xff0c;不需要对代码进行太高强度…

数据结构---基数排序

数据结构—基数排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> int getNumberBit(int number) {//获取数字的位数int x number,count0;if (x 0)return 1;while (x ! 0) {count;x / 10;}return count; } int g…

C# 版本 疫情传播仿真程序

前言前一阵子看到有人制作了《疫情传播仿真程序》&#xff0c;是用 Java做的。里面根据多种实际情况&#xff0c;如居民移动意愿、医护能力、病毒传播能力&#xff0c;来模拟疫情的发展。看完之后&#xff0c;我暗暗称奇&#xff0c;特别是结合一些视频和照片&#xff0c;确实做…

二维前缀和

二维前缀和核心操作&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; const int N 2000; int mp[N][N]; int dp[N][N];int main() {int n, m, k;cin >> n >> m >> k;//矩阵为n*m,k次查询for (int i 1; i < n; i)fo…

jmeter 加密解密_使用Jmeter对SHA1加密接口进行性能测试

机会只留给那些有准备的人改变能改变的&#xff0c;接受不能改变的&#xff0c;就是进步性能测试过程中&#xff0c;有时候会遇到需要对信息头进行加密鉴权&#xff0c;下面我就来介绍如何针对SHA1加密鉴权开发性能测试脚本 1、首先了解原理&#xff0c;就是需要对如下三个参数…

word List 06

word List 06 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

面对疫情,在家办公的程序员如何突围

作者&#xff1a;陌北有棵树&#xff0c;架构师社区合伙人很多程序员朋友都已经开始了在家办公的生活&#xff0c;第一天办公&#xff0c;你的远程工具还流畅吗&#xff0c;视频会议换了几个软件&#xff1f;当然这些都是外在因素&#xff0c;尤其对于程序员来说&#xff0c;解…

[蓝桥杯2018初赛]全球变暖-dfs,bfs,连通块

解题思路: bfs:遍历所有未遍历过的陆地&#xff0c;通过bfs计算出当前位置连通陆地的数量cnt&#xff0c;以及被淹没陆地的数量bound,若cnt bound表示完整淹没的一个岛屿 dfs:将连通块全部标记&#xff0c;如果这个连通块全部都会淹没&#xff0c;则答案1&#xff0c;如果这个…

latex 参考文献显示问号_回「LaTeX 的罪与罚」

原文链接&#xff1a;LaTeX 的罪与罚 - 朴素的贝叶斯的文章 - 知乎作为 LaTeX 开发者&#xff0c;看到这种嘲讽自然是非常 angry 的。本来并不想趟这个混水&#xff0c;然而眼见着赞数一天天涨上去&#xff0c;还居然进了精华区&#xff0c;实在忍不住只好注册了贵乎来说几句。…

数据结构---多源最短路径

数据结构—多源最短路径 原理&#xff1a;参考趣学数据结构 代码&#xff1a; 栈代码&#xff1a; #pragma once #include<stdio.h> #define maxSize 100 typedef struct stack {int * base;int * top; }stack; bool init(stack & Stack) {//栈的初始化Stack.base…

疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

当前情况下&#xff0c;经常会有需要到公司电脑进行一些操作&#xff0c;比如连接内网OA&#xff0c;数据库或者提交文档。为了减少外出&#xff0c;将使用frp进行内网穿透的方法进行一个说明。前提条件1. 一台拥有公网 IP 的设备(如果没有&#xff0c;服务器可以使用https://d…