ZOJ 3682 简单dp 背包
2013-04-22 11:27
405 查看
#include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std ; #define N 101000 #define M 10100 int n, t ; struct Node{ int p, q ; bool operator<(const Node & a)const{ return (q - p < a.q - a.p) ; } }s[N] ; int f[N] ; int sum1[N], sum2[N] ; int main(){ //freopen("input.txt", "r", stdin) ; while(scanf("%d %d", &n, &t) != EOF){ for(int i=1; i<=n; i++) scanf("%d %d", &s[i].p, &s[i].q) ; sort(s+1, s+1+n) ; for(int i=1; i<=n; i++) f[i] = s[i].q - s[i].p ; sum1[0] = sum2[n+1] = 0 ; for(int i=1; i<=n; i++) sum1[i] = sum1[i-1] + s[i].p ; for(int i=n; i>0; i--) sum2[i] = sum2[i+1] + s[i].q ; while(t--){ int m ; scanf("%d", &m) ; int idx = lower_bound(f+1, f+1+n, m) - f ; int ans = sum1[idx-1] + sum2[idx]- (n - idx + 1) * m ; printf("%d\n", ans) ; } } return 0 ; }
相关文章推荐
- [ZOJ 3682] E - Cup 3 (背包DP计数 + 滚动数组)
- zoj 1539 Lot 简单DP 记忆化
- zoj 1093 Monkey and Banana 简单dP 入门
- zoj3905 Cake (简单dp)
- zoj 3201 Tree of Tree(树形背包dp)
- zoj 3689 简单背包
- 采药(洛谷简单dp背包问题)
- [USACO 2.3.4]货币系统【DP完全背包的简单应用】CSUST 1081
- zoj 3201 简单树形dp Tree of Tree
- ZOJ 2366 Weird Dissimilarity (简单DP)
- ZOJ-3264 Present for MM (背包dp)
- DP(五)——简单的多重背包
- ZOJ 3623 Battle Ships 简单DP
- [USACO 2.3.4]货币系统【DP完全背包的简单应用】CSUST 1081
- zoj 3537 三角剖分 简单区间DP
- zoj 2402 简单dp
- ZOJ 3741 Eternal Reality 简单dp
- zoj 1027 简单dp
- zoj 3640 Help Me Escape 期望DP 简单题 适合记忆化搜索
- zoj1163 The Staircases (简单dp)