C - Snuke Festival

....最后想到了,可是不应该枚举a[],这样要二重循环,而应该枚举b[],这样只需一重循环。。。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=1e5+;
int a[maxn],b[maxn],c[maxn];
int n; int FindLastSmaller(int key)
{
int l=,r=n-;
while(l<=r){
int mid=(l+r)>>;
if(a[mid]>=key) r=mid-;
else l=mid+;
}
return r;
} int FindFirstLarger(int key)
{
int l=,r=n-;
while(l<=r){
int mid=(l+r)>>;
if(c[mid]>key) r=mid-;
else l=mid+;
}
return l;
} int main()
{
cin>>n;
for(int i=;i<n;i++) cin>>a[i];
for(int i=;i<n;i++) cin>>b[i];
for(int i=;i<n;i++) cin>>c[i];
sort(a,a+n);
sort(b,b+n);
sort(c,c+n);
ll ans=;
for(int i=;i<n;i++){
ll p1=FindLastSmaller(b[i]);
ll p2=FindFirstLarger(b[i]);
ans+=(p1+)*(n-p2);
}
cout<<ans<<endl;
return ;
}

lower_bound(),upper_bounder()不能再好用。。。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + ;
int a[maxn], b[maxn], c[maxn];
int n; int main()
{
scanf("%d", &n);
for (int i = ; i < n; i++) scanf("%d", &a[i]);
for (int i = ; i < n; i++) scanf("%d", &b[i]);
for (int i = ; i < n; i++) scanf("%d", &c[i]);
sort(a, a + n);
sort(b, b + n);
sort(c, c + n);
ll ans = ;
for (int i = ; i<n; i++) {
ll p = lower_bound(a, a + n, b[i]) - a;
ll q = upper_bound(c, c + n, b[i]) - c;
ans += p*(n - q);
}
printf("%lld\n", ans);
}

AtCoder Regular Contest 084 C - Snuke Festival【二分】的更多相关文章

  1. AtCoder Beginner Contest 077 C Snuke Festival(二分)

    二分水题,A,B,C三个数组排序,对于每个B[i],二分算出来有多少A比他小,多少C比他大,然后扫一遍出结果.O(nlog(n))水过. #include <bits/stdc++.h> ...

  2. AtCoder Regular Contest 068E:Snuke Line

    题目传送门:https://arc068.contest.atcoder.jp/tasks/arc068_c 题目翻译 直线上有\(0-m\)这\(m+1\)个点,一共有\(m\)辆火车.第\(i\) ...

  3. AtCoder Regular Contest 063 F : Snuke’s Coloring 2 (线段树 + 单调栈)

    题意 小 \(\mathrm{C}\) 很喜欢二维染色问题,这天他拿来了一个 \(w × h\) 的二维平面 , 初始时均为白色 . 然后他在上面设置了 \(n\) 个关键点 \((X_i , Y_i ...

  4. AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图

    AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图 链接 AtCoder 大意 在数轴上放上n个点,点i可能的位置有\(x_i\)或者\(y_i\ ...

  5. AtCoder Regular Contest 061

    AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...

  6. AtCoder Regular Contest 092

    AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...

  7. AtCoder Regular Contest 098

    AtCoder Regular Contest 098 C - Attention 题意 给定一个只包含"E","W"字符串,可以花一的花费使他们互相转换.选定 ...

  8. AtCoder Regular Contest 099

    AtCoder Regular Contest 099 C - Minimization 题意 题意:给出一个n的排列.每次操作可以使一段长度为K的连续子序列变成该序列的最小数.求最少几次使得整个数列 ...

  9. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

随机推荐

  1. JDK配置环境变量 (JDK安装成功后进行配置)

    "我的电脑" -- 右键"属性" --- "高级系统设置" --- “环境变量” 第一步:配置     JAVA_HOME 变量 找到 变量 ...

  2. Django-rest Framework(六)

    不懂使用机制的直接看源码就好了,也不是很难,能够看得懂 视图家族 1. View:将请求方式与视图类的同名方法建立映射,完成请求响应(原生django) from django.views impor ...

  3. spring boot 源码解析11-ConfigurationClassPostProcessor类加载解析

    前言 ConfigurationClassPostProcessor实现了BeanDefinitionRegistryPostProcessor接口,该类会在AbstractApplicationCo ...

  4. Java程序员面试题收集(4)

    Java面试题和答案JAVA相关基础知识1.面向对象的特征有哪些方面      1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题 ...

  5. 把char[]数组里面的内容用MessageBox显示出来

    const char *q; q = mysql_get_client_info();  //获得一字符串指针 CString p(q); AfxMessageBox(p);

  6. reduce个数问题

    reduce的数目到底和哪些因素有关 1.我们知道map的数量和文件数.文件大小.块大小.以及split大小有关,而reduce的数量跟哪些因素有关呢?  设置mapred.tasktracker.r ...

  7. python生成VOC2007的类库

    VOCAnnotation.py: # -*-coding:utf-8-*- from lxml import etree import os class VOCAnnotation(object): ...

  8. TZ_03_mybatis的注解开发

    1.一对多的注解开发 1>需求通过查询所有的用户,并且找到该用户的所有账户(使用延迟加载模式) @Select("select * from user") //sql语句查询 ...

  9. 区块链、云计算、大数据、人工智能、FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾

    区块链.云计算.大数据.人工智能.FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾 | 作者 韩婷 发布于 2016年12月26日. 估计阅读时间: 不到一分钟 | 欲知区块链.VR.Te ...

  10. 遍历list时删除元素的正确做法

    我们往往会遇到需要删除list中满足条件的元素.举例: List<string> list_str =new List<string>() { "A",&q ...