usaco Bessie Come Home

题意是给一个牧场,牧场当中有好多牧区,每个牧区用一个英文字母表示,大写的字母代表的牧区里各有一头牛,小写的没有,大写Z代表牛吃饭的地方。

牛以相同的速度往吃饭的地方走,问哪个牧区的牛先到,并输出这头牛走过距离

解法是以Z为起点求一遍单源最短路径。找到里的最近的那个大写字母所代表的那个牧场。

/*
ID: modengd1
PROG: comehome
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <queue>
#include <memory.h>
#define INF 2139062143
using namespace std;
int input[53][53];
int N;

int getindex(char x)
{
    if(x<=‘z‘&&x>=‘a‘)//小写字母标号0-25
        return x-‘a‘;
    return x-‘A‘+26;//大写字母26-51
}
struct node
{
    int E,W;
    node(int ee,int ww)
    {
        E=ee;W=ww;
    }
    node(){}
    bool friend operator<(node n1,node n2)
    {
        return n1.W>n2.W;
    }
};
void Dijiskra(int x)
{
    int dist[56];
    memset(dist,0x7f,sizeof(dist));//以字节为单位初始化,得到的数组中每个int值为2139062143,也就是INF
    priority_queue<node> Q;
    Q.push(node(x,0));
    node now;
    while(!Q.empty())
    {
        now=Q.top();
        Q.pop();
        if(now.E>25&&now.E!=x)//找到了一个大写字母代表的牧区就输出并返回,因为dijiskra算法按照最短路径升序找最短
        {
            printf("%c %d\n",now.E+‘A‘-26,now.W);
            return;
        }
        for(int i=0;i<52;i++)
        {
            if(input[now.E][i]!=INF&&dist[i]>now.W+input[now.E][i])//小于当前dist数组中的值再入队列
            {
                Q.push(node(i,now.W+input[now.E][i]));
                dist[i]=now.W+input[now.E][i];
            }
        }
    }
}
int main()
{
    freopen("comehome.in","r",stdin);
    freopen("comehome.out","w",stdout);
    memset(input,0x7f,sizeof(input));
    scanf("%d",&N);
    getchar();
    char ch1,ch2;
    int temp,a,b;
    for(int i=0;i<N;i++)
    {
        ch1=getchar();
        getchar();
        ch2=getchar();
        getchar();
        scanf("%d",&temp);
        getchar();
        if(temp<input[getindex(ch1)][getindex(ch2)])//输入
        {
            input[getindex(ch1)][getindex(ch2)]=temp;
            input[getindex(ch2)][getindex(ch1)]=temp;
        }
    }
    Dijiskra(51);
    return 0;
}

  

时间: 2024-10-28 22:46:38

usaco Bessie Come Home的相关文章

usaco题目分享——Bessie Come Home

Bessie Come HomeKolstad & Burch It's dinner time, and the cows are out in their separate pastures. Farmer John rings the bell so they will start walking to the barn. Your job is to figure out which one cow gets to the barn first (the supplied test da

USACO Section 2.4 回家 Bessie Come Home

题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛). 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛. 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己). 有时,两个牧场(可能是字母相同的)之间会有超过一条道路相连. 至少有一个牧场和谷仓之间有道路连接. 因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径. 当然,

洛谷P1529 回家 Bessie Come Home

P1529 回家 Bessie Come Home 题目描述 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛). 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛. 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己). 有时,两个牧场(可能是字母相同的)之间会有超过一条道路相连. 至少有一个牧场和谷仓之间有道路连接. 因此,所有的母牛

bzoj2581 [USACO 2012 Jan Gold] Cow Run【And-Or Tree】

传送门1:http://www.usaco.org/index.php?page=viewproblem2&cpid=110 传送门2:http://www.lydsy.com/JudgeOnline/problem.php?id=2581 这题我一看就知道自己不会了,只想了个O(2^n * 2 ^ n)即O(2 ^ 2n)的大暴力,也懒得打了,果断看solution. 看了之后惊呆了,看到了一种从未见过,闻所未闻的树叫做And-Or Tree,百度了一下,并没有官方中文翻译,姑且叫他"

3298: [USACO 2011Open]cow checkers

3298: [USACO 2011Open]cow checkers Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 65  Solved: 26[Submit][Status][Discuss] Description 一天,Besssie准备和FJ挑战奶牛跳棋游戏.这个游戏上在一个M*N(1<=M<=1,000,000;1<=N<=1,000,000)的棋盘上, 这个棋盘上在(x,y)(0<=x棋盘的左下角是(0,0)坐标,

USACO 2013 Nov Silver Pogo-Cow

最近因为闲的蛋疼(停课了),所以开始做一些 USACO 的银组题.被完虐啊 TAT 貌似 Pogo-Cow 这题是 2013 Nov Silver 唯一一道可说的题目? ? Pogo-Cow Description (大意是一条直线上有一些带权值的点,可以选择一个点作为出发点,选好一个前进方向(左或右)然后不断地向前跳到另一个点,得分为这个点的权值,要求每一跳的跳跃距离不小于前一跳,求能获得的最大得分) In an ill-conceived attempt to enhance the mob

USACO翻译:USACO 2014 DEC Silver三题

USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 奶牛IDs 搬家 英文题目名称 piggyback cowids relocate 可执行文件名 piggyback cowids relocate 输入文件名 piggyback.in cowids.in relocate.in 输出文件名 piggyback.out cowids.out relocate.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较

Usaco Open09 Gold

Problem 1: Ski Lessons [Brian Jacokes, 2002] Farmer John wants to take Bessie skiing in Colorado. Sadly, Bessie is not really a very good skier. Bessie has learned that the ski resort is offering S (0 <= S <= 100) ski classes throughout the day. Les

USACO JAN 2012 Bronze

Problem 1: Gifts [Kalki Seksaria and Brian Dean, 2012] Farmer John wants to give gifts to his N (1 <= N <= 1000) cows, using his total budget of B (1 <= B <= 1,000,000,000) units of money. Cow i requests a gift with a price of P(i) units, and