poj 3663 Costume Party(快排)
2014-08-04 09:11
281 查看
题目大意:给你两个个数据s, n,下面输入n组数据代表牛的距离,如果两头牛的长度和小于等于s 就算是一对, 求一共有多少对?
#include<stdio.h> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int num[20010]; int main(){ int n,m,i,j,t,v; while(~scanf("%d%d",&n,&m)){ memset(num,0,sizeof(num)); for(i=0;i<n;i++){ scanf("%d",&num[i]); } sort(num,num+n); for(t=i=0;i<n;i++){ for(j=i+1;j<n;j++) if(num[i]+num[j]<=m){ t++; }else{ break; } } printf("%d\n",t); } return 0; }
//运行时间超短的,不容易懂 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int num[1000010]; int main(){ int n,m,i,s,l; while(~scanf("%d%d",&n,&m)){ memset(num,0,sizeof(num)); for(i=0;i<n;i++){ scanf("%d",&num[i]); } sort(num,num+n);//快排 for(s=l=0,i=n-1;i>=0;i--){ while(num[l]+num[i]<=m&&l<n){//找到不满足和小于m的位置 l++; } s+=l; if(l-1>=i) s--; } printf("%d\n",s/2); } return 0; }
相关文章推荐
- Poj-3663-Costume Party-双指针扫描
- poj 3663 Costume Party 【简单搜索】
- POJ 3663 Costume Party(模拟+减枝)
- POJ 3663 Costume Party (二分查找)
- POJ-3663-Costume Party
- POJ 3663 Costume Party
- POJ 3663 Costume Party (二分查找)
- (Relax ST1.20)POJ 3663 Costume Party(贪心+剪枝)
- POJ 3663:Costume Party
- POJ 3663 Costume Party (快速排序)
- POJ 3663:Costume Party
- G - Costume Party POJ - 3663
- poj 3663 Costume Party
- poj 3663 Costume Party
- POJ 3663 costume party
- Costume Party POJ - 3663
- POJ 3363 Costume Party sort
- poj&nbsp;3663&nbsp;Costume&nbsp;Party&nbsp;二分
- POJ Costume Party
- poj 3633 Costume Party