hdu2578 Dating with girls(1) (二分 || map)
2013-12-11 23:02
232 查看
题目链接:点击打开链接
在这题中使用二分查找比使用map查找更快
二分查找法代码如下(625ms):
map查找法代码如下(1390ms):
在这题中使用二分查找比使用map查找更快
二分查找法代码如下(625ms):
#include <cstdio> #include <algorithm> using namespace std; const int N = 111111; int a ; int main() { int t, n, *m, k, cnt, f; scanf("%d", &t); while(t-- && scanf("%d%d", &n, &k)) { cnt = 0, f = 0; for(int i = 0; i < n; i++) scanf("%d", a + i); sort(a, a + n); m = unique(a, a + n); for(int i = 0; i < m - a; i++) { if(a[i] << 1 > k) break; if(binary_search(a, m, k - a[i])) { if(a[i] << 1 == k) f = 1; cnt++; } } cnt <<= 1; printf("%d\n", f ? cnt - 1 : cnt); } return 0; }
map查找法代码如下(1390ms):
#include <cstdio> #include <map> #include <algorithm> using namespace std; const int N = 111111; int a ; map<int, int> m; int main() { int t, n, k, f, cnt; scanf("%d", &t); while(t-- && scanf("%d%d", &n, &k)) { m.clear(); cnt = 0, f = 0; for(int i = 0; i < n; i++) { scanf("%d", a + i); m[a[i]] = 1; } sort(a, a + n); int l = unique(a, a + n) - a; for(int i = 0; i < l; i++) { if(a[i] << 1 > k) break; if(m[k - a[i]]) { if(a[i] << 1 == k) f = 1; cnt++; } } cnt <<= 1; printf("%d\n", f ? cnt - 1 : cnt); } return 0; }
相关文章推荐
- HDU2578--Dating with girls(1) (map||排序+二分)
- Dating with girls(1)(二分+map+set)
- HDU2578 Dating with girls(1)(二分)
- HDU2578 Dating with girls(1)(二分)
- HDU2578_Dating with girls(1)(二分)
- HDOJ-2578-Dating with girls(1) 【排序 去重 二分】
- ACM-简单题之Dating with girls1——hdu2578
- hdu 2578 Dating with girls(1)(二分查找)
- hdu 2578 Dating with girls(1)(二分查找)
- SCUT第四次训练赛(归并排序 sort 搜索 搜索2 并查集 高精度乘法 二分 Dating with girls(1) 均分纸牌 导弹拦截 A + B Problem II)
- hdu 2578 Dating with girls(1) 排序+二分查找 水题
- hdoj 2578 Dating with girls(1) 【排序+二分+去重】
- HDU2578:Dating with girls(1)
- CSUST 第九届校赛G-Dating with girls(二分)
- hdu 2578 Dating with girls(1) (二分)
- Dating with girls(1)(二分)
- hdu 2578 Dating with girls(1)
- 杭电2579-Dating with girls(2) (非常清晰易懂的代码)
- hdu 2579 Dating with girls(2)【bfs】
- HDOJ--2579--Dating with girls(2)