poj 3633 Costume Party
2012-09-04 00:08
369 查看
题目大意:就是给一组数,求有多少对数的和不超过给定值
解题思路:水题。。。。。用来练练自己手写快速排序的。。。。
先把数按从小到大排列,然后用两个序号low,high分别指向第0个数和第n-1个数
当array[low] + array[high] <= s时
low和high之间的数都能和low位置的数组成对
然后low++
当array[low] + array[high] > s时
high--
想手写个快排,但是一直wa,,,,
解题思路:水题。。。。。用来练练自己手写快速排序的。。。。
先把数按从小到大排列,然后用两个序号low,high分别指向第0个数和第n-1个数
当array[low] + array[high] <= s时
low和high之间的数都能和low位置的数组成对
然后low++
当array[low] + array[high] > s时
high--
想手写个快排,但是一直wa,,,,
#include <iostream> #include <cstdio> #include <ctime> #include <cstdlib> #include <algorithm> using namespace std; const int maxn = 20010; int n,s, array[maxn]; void quickSort(int *array, int low, int high); inline int random(int begin, int end); inline void swap(int &a, int &b); int main() { int low, high, ans; // srand(time(0)); while(scanf("%d %d", &n, &s) != EOF) { ans = 0; for(int i = 0; i < n; i++) scanf("%d", &array[i]); sort(array, array + n); // quickSort(array, 0, n - 1); low = 0, high = n - 1; while(low < high) { if(array[low] + array[high] <= s) { ans += high - low; low++; } else high--; } printf("%d\n", ans); } return 0; } inline int random(int begin, int end) { return begin + rand() % (end - begin + 1); } inline void swap(int &a, int &b) { a ^= b; b ^= a; a ^= b; } void quickSort(int *array, int low, int high) { if(low < high) { /* int t = random(low + 1, high); swap(array[low], array[t]);*/ int tmp = array[low]; int i = low; for(int j = low + 1; j <= high; j++) { if(array[j] <= tmp) { i++; if(i != j) swap(array[i], array[j]); } } swap(array[i], array[low]); quickSort(array, low, i - 1); quickSort(array, i + 1, high); } }
相关文章推荐
- POJ 3663:Costume Party
- POJ 3663:Costume Party
- poj 3663 Costume Party
- POJ 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 (二分查找)
- poj&nbsp;3663&nbsp;Costume&nbsp;Party&nbsp;二分
- Poj-3663-Costume Party-双指针扫描
- POJ 3363 Costume Party sort
- POJ-3663-Costume Party
- POJ 3663 Costume Party
- Costume Party POJ - 3663
- (Relax ST1.20)POJ 3663 Costume Party(贪心+剪枝)
- POJ 3663 Costume Party (二分查找)
- poj 3663 Costume Party(快排)