UVa 1316 - Supermarket
来源:互联网 发布:淘宝上面买东西没发票 编辑:程序博客网 时间:2024/06/05 00:13
贪心
中间查询最值用了线段树
#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 | 1using namespace std;const int MAXN = 10010;struct node{ int p, d;};int n;node D[MAXN];int maxi[ MAXN << 2 ];int cmp( const void *a, const void *b ){ node *c = (node *)a; node *d = (node *)b; if ( c->p != d->p ) return d->p - c->p; return d->d - c->d;}void PushUp( int rt ){ maxi[rt] = max( maxi[ rt << 1 ], maxi[ rt << 1 | 1 ] ); return;}void build( int l, int r, int rt ){ maxi[rt] = r; if ( l == r ) return; int m = ( l + r ) >> 1; build( lson ); build( rson ); return;}int Query( int L, int R, int l, int r, int rt ){ if ( L <= l && r <= R ) { return maxi[rt]; } int m = ( l + r ) >> 1; int maxx = -1; if ( L <= m ) maxx = max( maxx, Query( L, R, lson ) ); if ( R > m ) maxx = max( maxx, Query( L, R, rson ) ); return maxx;}void Update( int L, int l, int r, int rt ){ if ( L == l && r == L ) { maxi[rt] = -1; return; } int m = ( l + r ) >> 1; if ( L <= m ) Update( L, lson ); else Update( L, rson ); PushUp(rt); return;}int main(){ while ( scanf( "%d", &n ) == 1 ) { int maxT = 1; for ( int i = 0; i < n; ++i ) { scanf( "%d%d", &D[i].p, &D[i].d ); maxT = max( maxT, D[i].d ); } qsort( D, n, sizeof(D[0]), cmp ); build( 1, maxT, 1 ); int ans = 0; for ( int i = 0; i < n; ++i ) { int tp = Query( 1, D[i].d, 1, maxT, 1 ); if ( tp != -1 ) { ans += D[i].p; Update( tp, 1, maxT, 1 ); } } printf( "%d\n", ans ); } return 0;}
- UVa 1316 - Supermarket
- UVA 1316 Supermarket
- uva 1316 - Supermarket(贪心)
- uva 1316 - Supermarket(贪心)
- UVA 1316 - Supermarket(贪心+经典问题)
- (advanced) UVA 优先队列+贪心 1316 Supermarket
- UVa 1316 Supermarket 解题报告(贪心)
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket
- Supermarket Equipment
- pku1456 Supermarket
- zoj1731-Supermarket
- NYOJ 635优先队列
- Jdbc的批处理执行
- Nutch相关框架安装使用最佳指南(转帖)
- 拜托大神们 把这两个程序帮我改对了吧 让他们可以运行~~~
- mysql低优先级
- UVa 1316 - Supermarket
- 一个10年程序员职业发展、总结和困境
- echo——log
- TextOut()函数
- 利用JavaScript预览上传前的图片
- android 解析json数据格式
- (学习Asp.net Ajax笔记二)异步通信层
- 【Android Notes】置顶索引
- ASP.NET学习概述篇