poj 3663 指针移动(多少对儿数之和大于m)
来源:互联网 发布:dvr9000监控软件下载 编辑:程序博客网 时间:2024/05/16 07:16
题意:给定一个数m和n个数,问这n个数的Cn,2种组合中有多少个相加之和小于等于m。
思路:先对n个数排序,然后用头尾两个指针向中间扫,记录相加之和大于m的数量,最后用组合数相减即可。
#include <stdio.h>#include <stdlib.h>#define N 20005int s[N];int n,m;int cmp(const void *a,const void *b){return (*(int *)a) - (*(int *)b);}int main(){freopen("a.txt","r",stdin);while(scanf("%d %d",&n,&m)!=EOF){int i,j,sum=0;for(i = 0;i<n;i++)scanf("%d",&s[i]);qsort(s,n,sizeof(int),cmp);for(i = 0,j=n-1;i<j;){if(s[i]+s[j] > m){sum+=j-i;j--;}elsei++;}printf("%d\n",n*(n-1)/2-sum);}return 0;}
0 0
- poj 3663 指针移动(多少对儿数之和大于m)
- LintCode(M)两数之和
- LintCode(M)三数之和
- (DS1.4.3)POJ 2739(一个数能表示成多少个连续素数之和)
- 求一个正整数,存在多少种质数对之和==该正整数
- LightOJ 1278 一个固定数可以换为几个连续数之和 求这样的连续数有多少对
- POJ 2909 Goldbach's Conjecture(我的水题之路——任一数为素数对之和)
- 整体大于部分之和(怦然心动影评)
- FFT(快速傅立叶变换)求数组中两两之和小于某个数的有多少个
- 输出1-100之间符合如下条件的数:该数的各位数之乘积大于各位数之和(循环嵌套)
- poj 2189/3061 贪心(找连续的羊圈/连续子序列之和大于limit的最短序列)
- POJ 1804(最小相邻数移动)
- 指针移动任意字节数
- POJ 2893 M × N Puzzle(逆序对-BIT)
- 在给定的序列中寻找两数之和为定值m的情况--对算法复杂度的分析与优化
- 判断一个偶数(大于4)是不是两个素数之和
- 人件读书笔记(20)整体大于部分之和
- 两数之和(二)
- MFC 下使用COM
- TCP/IP详解(卷2实现)学习笔记(一)udp的socket通信过程底层实现概述(1)
- UVA - 10673 - Play with Floor and Ceil (简单数学!)
- 详解MySQL中EXPLAIN解释命令
- IAR 扩展关键字
- poj 3663 指针移动(多少对儿数之和大于m)
- Bat命令学习
- 从头认识C—算术移位和逻辑移位
- 成悌元 東洲
- ac自动机 hdu 2222
- CSS样式(链接、列表、表格、轮廓)学习笔记
- onSaveInstanceState
- 无法正常建立AVD
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第2小节:动手实战Scala面向对象编程(3)