hiho 1607 H星人社交网络 [Offer收割]编程练习赛31 Problem A 二分乱搞
来源:互联网 发布:筱姿服饰旗舰店淘宝店 编辑:程序博客网 时间:2024/05/17 21:48
这个题,对于每个A[i],题目都给出了3个否定的区间,是不能交朋友的,本来我想用容斥,1+2+3-12-13-23+123这样子写了一发然后WA了,后来发现没那么麻烦,每个人的交友区间都能求出一个单一的区间来[v1,v2],v1的值可以由第一条规则的出来,v2的值就是第二第三条规则的临界值的min,然后如果自己在这个区间里,给去掉就行了。
找的过程中用upper和lower bound非常方便。
整体复杂度是O(n*logn)
#include <iostream>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string>#include <string.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <stack>#include <bits/stdc++.h>using namespace std;int N;int A[100009];int main(){ cin>>N; for(int i=0;i<N;i++){ scanf("%d",&A[i]); } sort(A,A+N); long long ans=0; for(int i=0;i<N;i++){ int v1; if(A[i]/8*8==A[i]){ v1=A[i]/8+8; } else{ v1=A[i]/8+9; } int v2=8*A[i]+8; if(A[i]<88888){ v2=min(v2,88888); } int curans=upper_bound(A,A+N,v2)-lower_bound(A,A+N,v1); if(A+i>=lower_bound(A,A+N,v1)&&A+i<upper_bound(A,A+N,v2))curans-=1; curans=max(0,curans); ans+=curans; } cout<<ans<<endl; return 0;}//// _oo0oo_// o8888888o// 88" . "88// (| -_- |)// 0\ = /0// ___/`---'\___// .' \\| |// '.// / \\||| : |||// \// / _||||| -:- |||||- \// | | \\\ - /// | |// | \_| ''\---/'' |_/ |// \ .-\__ '-' ___/-. /// ___'. .' /--.--\ `. .'___// ."" '< `.___\_<|>_/___.' >' "".// | | : `- \`.;`\ _ /`;.`/ - ` : | |// \ \ `_. \_ __\ /__ _/ .-` / /// =====`-.____`.___ \_____/___.-`___.-'=====// `=---='////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//// 佛祖保佑 永无BUG//////
阅读全文
1 0
- hiho 1607 H星人社交网络 [Offer收割]编程练习赛31 Problem A 二分乱搞
- hiho 1599 dfs乱搞 [Offer收割]编程练习赛29 Problem A 逃离迷宫4
- hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分
- hiho 1612 候选人追踪 [Offer收割]编程练习赛32 Problem B 乱搞
- hiho 1485 尺取法 [Offer收割]编程练习赛11 problem A hiho字符串
- hiho 1626 缩写命名 [Offer收割]编程练习赛35 Problem D 二分图匹配
- hiho 1638 小Hi的天平 [Offer收割]编程练习赛36 Problem B 并查集+图dfs乱搞
- hiho 1611 气泡图 [Offer收割]编程练习赛32 Problem A 数学公式暴力
- hiho 1615 矩阵游戏II [Offer收割]编程练习赛33 Problem A 贪心暴力
- hiho 1619 “共同富裕” [Offer收割]编程练习赛34 Problem A 数学
- hiho 1623 有歧义的号码 [Offer收割]编程练习赛35 Problem A
- hiho 1641 热门号码 [Offer收割]编程练习赛37 Problem A
- hiho[Offer收割]编程练习赛1
- hiho 1486 DP+状压 [Offer收割]编程练习赛11 problem B 物品价值
- hiho 1487 并查集+搜索 [Offer收割]编程练习赛11 problem C 岛屿3
- hiho 1613 墨水滴 [Offer收割]编程练习赛32 Problem C 优先队列+BFS
- hiho 1617 方格取数 [Offer收割]编程练习赛33 Problem C DP
- hiho 1620 股票价格3 [Offer收割]编程练习赛34 Problem B 单调栈
- POJ3057(二分图匹配)
- CHKJ3000E错误解决
- 【Spring】AOP编程(十二)
- (笔试中的题目)一个已经排序好的数组找到两个数字相加等于一个给定的数
- 39-内存分配方式:栈、堆、静态存储区
- hiho 1607 H星人社交网络 [Offer收割]编程练习赛31 Problem A 二分乱搞
- [LeetCode]Reverse Integer
- HDU 5949 Relative atomic mass
- Servlet---JavaWeb技术的核心基础,JavaWeb框架的基石(一)
- 飞机大战-java
- 利用python进入数据分析之pandas的使用
- 第二章课后习题
- 笔记5
- 大数据课程笔记4:摘要结构,streaming algorithm