【二分】COGS 140. [USACO Jan08] 化装晚会
2013-10-21 17:45
330 查看
题目链接:http://cojs.tk/cogs/problem/problem.php?pid=140
分析:
比较简单,但一定要细心,注意细节。
首先将每个数减去 s/2,快排。
然后找出0的位置,从这个位置开始,查找第一个绝对值小于它的数,记下位置。
累加两数的位置差。最后用全部情况减去符合的情况。
代码:
分析:
比较简单,但一定要细心,注意细节。
首先将每个数减去 s/2,快排。
然后找出0的位置,从这个位置开始,查找第一个绝对值小于它的数,记下位置。
累加两数的位置差。最后用全部情况减去符合的情况。
代码:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std;int n,s,mx,p,ans=0; double a[200010]={0}; int main() { freopen("costume.in","r",stdin); freopen("costume.out","w",stdout); cin>>n>>s; for (int i=1;i<=n;i++) { cin>>a[i]; if (mx<a[i]) mx=a[i]; } sort(a+1,a+1+n); for (int i=1;i<=n;i++)a[i]-=s/2.0; p=lower_bound(a+1,a+1+n,0)-a; for (int i=p;i<=n;i++) { int hi=lower_bound(a+1,a+n+1,-1*a[i])-a; while (a[hi]==a[i]*-1&&hi<i) hi++; ans+=(i-hi); } long long nn=n*(n-1)/2; cout<<nn-ans; }
相关文章推荐
- USACO Jan08 (COGS 174) 架设电话线 二分答案,缩点,BFS判断可行性
- [USACO Jan08] 化装晚会
- 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)
- 化装晚会
- COGS 862. 二进制数01串【dp+经典二分+字符串】
- [USACO Jan08][BZOJ 1614][COGS 147]架设电话线
- [cogs2482][二分答案]Franky的胡子
- (最短路+二分) cogs 147
- 【COGS】1595 [USACO FEB05]神秘的挤奶机 二分最大流
- 化装晚会
- NOIP 2005 篝火晚会 COGS 112(只是用到置换的一个小概念而已)
- 化装晚会(costume)
- COGS 2482. Franky的胡子【二分,高精度】
- USACO/costume/化装晚会 [Neal Wu, 2007]
- 【题解】回文串 APIO 2014 BZOJ 3676 COGS 1985 Manacher+后缀数组+二分
- Problem B:化装晚会(usaco月赛)
- NOIP 2010 关押罪犯 二分答案+二分图染色判定 COGS 520
- COGS-2295 榴莲(整体二分+树状数组+树上差分)
- 一中OJ #1151 [USACO Jan08] 化妆晚会 | 排序与查找 | 解题报告
- 在序列(22,34,55,77,89,93,99,102,120,140)中,采用二分查找,分别查找77,34,99,所需的查找次数分别为()----腾讯2016研发工程师笔试题(一)