Bzoj3315 [Usaco2013 Nov]Pogo-Cow(luogu3089)

3315: [Usaco2013 Nov]Pogo-Cow

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 352  Solved: 181
[Submit][Status][Discuss]

Description

In an ill-conceived attempt to enhance the mobility of his prize cow Bessie, Farmer John has attached a pogo stick to each of Bessie‘s legs. Bessie can now hop around quickly throughout the farm, but she has not yet learned how to slow down. To help train Bessie to hop with greater control, Farmer John sets up a practice course for her along a straight one-dimensional path across his farm. At various distinct positions on the path, he places N targets on which Bessie should try to land (1 <= N <= 1000). Target i is located at position x(i), and is worth p(i) points if Bessie lands on it. Bessie starts at the location of any target of her choosing and is allowed to move in only one direction, hopping from target to target. Each hop must cover at least as much distance as the previous hop, and must land on a target. Bessie receives credit for every target she touches (including the initial target on which she starts). Please compute the maximum number of points she can obtain.

一个坐标轴有N个点,每跳到一个点会获得该点的分数,并只能朝同一个方向跳,但是每一次的跳跃的距离必须不小于前一次的跳跃距离,起始点任选,求能获得的最大分数。

Input

* Line 1: The integer N.

* Lines 2..1+N: Line i+1 contains x(i) and p(i), each an integer in the range 0..1,000,000.

Output

* Line 1: The maximum number of points Bessie can receive.

Sample Input

6
5 6
1 1
10 5
7 6
4 8
8 10

INPUT DETAILS: There are 6 targets. The first is at position x=5 and is worth 6 points, and so on.

Sample Output

25
OUTPUT DETAILS: Bessie hops from position x=4 (8 points) to position x=5 (6 points) to position x=7 (6 points) to position x=10 (5 points).

从坐标为4的点,跳到坐标为5的,再到坐标为7和,再到坐标为10的。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 101
int n,ans;
struct node{
    int s,v;
}a[maxn];
int cmp(node x,node y){return x.s<y.s;}
void dfs1(int now,int limit,int sum){
    ans=max(ans,sum);
    if(now>n)return;
    for(int i=now+1;i<=n;i++){
        if(a[i].s-a[now].s<limit)continue;
        else dfs1(i,a[i].s-a[now].s,sum+a[i].v);
    }
}
void dfs2(int now,int limit,int sum){
    ans=max(ans,sum);
    if(now<1)return;
    for(int i=now-1;i>=1;i--){
        if(a[now].s-a[i].s<limit)continue;
        else dfs2(i,a[now].s-a[i].s,sum+a[i].v);
    }
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d%d",&a[i].s,&a[i].v);
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){
        dfs1(i,0,a[i].v);//向右
        dfs2(i,0,a[i].v);//向左
    }
    printf("%d",ans);
}

36分 暴力

时间: 2024-10-17 11:26:48

Bzoj3315 [Usaco2013 Nov]Pogo-Cow(luogu3089)的相关文章

BZOJ3315: [Usaco2013 Nov]Pogo-Cow

3315: [Usaco2013 Nov]Pogo-Cow Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 143  Solved: 79[Submit][Status] Description In an ill-conceived attempt to enhance the mobility of his prize cow Bessie, Farmer John has attached a pogo stick to each of Bes

poj3278--Catch That Cow(bfs)

  Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K       Description Farmer John has been informed of the location of a fugitive(逃亡的;难以捉摸的;短暂的) cow and wants to catch her immediately. He starts at a pointN(0 ≤N ≤ 100,000) on a number line and

解题报告 『[USACO07JAN]Tallest Cow(差分)』

原题地址 建立一个数组high,若一对关系指明Ai与Bi可以互相看见(Ai < Bi),则把数组high中下标为Ai + 1到Bi - 1的数都减去1,意为Ai到Bi之间的牛的身高至少比它们少1. 再加一个辅助数组sup可以将时间复杂度由O(NM)降到O(N + M). 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = a; i <= b;

HDU 2717 Catch That Cow (bfs)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717 Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12615    Accepted Submission(s): 3902 Problem Description Farmer John has been

POJ3279 Catch That Cow(BFS)

本文出自:http://blog.csdn.net/svitter 题意:给你一个数字n, 一个数字k,分别代表主人的位置和奶牛的位置,主任可以移动的方案有x+1, x-1, 2*x,求主人找到奶牛的时间(奶牛不移动) 题解:最基础的BFS但是脑子犯抽WA了3遍- = 注意: 1.数组范围1~1<<5 2.visit去重.(BFS最基础的) 代码: #include <iostream> #include <stdio.h> #include <string.h&

POJ 3278 Catch That Cow(bfs)

传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25290 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 10

POJ - 3278 - Catch That Cow (BFS)

题目传送:Catch That Cow 思路:BFS找最小步数,用一个结构体存下当前结点的数值以及当前步数 AC代码: #include <cstdio> #include <cstring> #include <string> #include <cstdlib> #include <iostream> #include <algorithm> #include <cmath> #include <queue>

POJ 题目Catch That Cow(BFS)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 52537   Accepted: 16471 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,00

POJ3278Catch That Cow(线性模型)(BFS)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 49988   Accepted: 15679 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,00