栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2374 Fence Obstacle Course

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2374 Fence Obstacle Course

#include <stdio.h>#define MAX_N 50032#define MAX_R 100032 struct {    int a, b;} dp[MAX_N], fences[MAX_N];int N, S, tree[MAX_R*16];__inline int max(int a, int b){    return a > b ? a : b;}__inline int abs(int a){    return a > 0 ? a : -a;}__inline int min(int a, int b){    return a < b ? a : b;}void insert(int idx, int start, int end, int left, int right, int val){    int mid;    if (start == left && right == end) {        tree[idx] = val;        return ;    }    mid = (start + end) / 2;    if (right <= mid)         insert(idx*2, start, mid, left, right, val);    else if (left > mid)        insert(idx*2+1, mid + 1, end, left, right, val);    else {        insert(idx*2, start, mid, left, mid, val);        insert(idx*2+1, mid + 1, end, mid + 1, right, val);    }}int query(int idx, int start, int end, int pos){    int val, mid;    if (start == pos && end == pos)         return tree[idx];    mid = (start + end) / 2;    if (pos <= mid)        val = query(idx*2, start, mid, pos);    else        val = query(idx*2+1, mid + 1, end, pos);    return max(val, tree[idx]);}__inline int calc_min(int i, int pos){    if (!i)        return abs(pos - MAX_R);    return min(pos - fences[i].a + dp[i].a, fences[i].b - pos + dp[i].b);}int main(){    int i;    scanf("%d%d", &N, &S);    S += MAX_R;    for (i = 1; i <= N; i++) {        scanf("%d%d", &fences[i].a, &fences[i].b);        fences[i].a += MAX_R;        fences[i].b += MAX_R;        dp[i].a = calc_min(query(1, 0, MAX_R*2, fences[i].a), fences[i].a);        dp[i].b = calc_min(query(1, 0, MAX_R*2, fences[i].b), fences[i].b);        insert(1, 0, MAX_R*2, fences[i].a, fences[i].b, i);    }    printf(    "%dn",  min(S - fences[N].a + dp[N].a, fences[N].b - S + dp[N].b) );    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号