• UVA1025


    A spy in the Metro

    多组数据

    输入n,一直线地铁线上有n个车站。

    输入T,表示间谍要在时间T在车站n与人会面

    输入ti,表示i到i+1站地铁所花费的时间。

    输入m1表示从1向n开的车的数量。

    输入di 表示第i辆车的出发时间。

    输入m2表示从n向1开的车的数量。

    输入ei 表示第i辆车的出发时间。

    间谍0时刻时在第一站,输出最少在车外等待时间,若不能到n输出impossible。(尽量使间谍乘车)

    f[i][j]表示时间i时,间谍在j车站未来最少等车时间。

    在车站等候f[i+1][j]+1

    坐车向左f[i+tj][j+1]

    坐车向右f[i+t(j-1)][j-1]

    三者取最小即可,还要做时间i时有无在车站j向左向右的预处理。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int M=1e9;
    int f[205][55],ti[55];
    bool sf[205][55][2];
    int main()
    {
        int n,cas=0;
        while(scanf("%d",&n)&&n)
        {
            memset(sf,0,sizeof(sf));
            int t,m;
            scanf("%d",&t);
            for(int i=1;i<n;++i) scanf("%d",&ti[i]);
            scanf("%d",&m);
            for(int i=1;i<=m;++i) 
            {
                int tt;
                scanf("%d",&tt);
                for(int j=1;tt<=t&&j<=n;++j)
                    sf[tt][j][0]=1,tt+=ti[j];
            }
            scanf("%d",&m);
            for(int i=1;i<=m;++i)
            {
                int tt;
                scanf("%d",&tt);
                for(int j=n;tt<=t&&j;--j)
                    sf[tt][j][1]=1,tt+=ti[j-1];
            }
            for(int i=1;i<n;++i) f[t][i]=M;
            f[t][n]=0;
            for(int i=t-1;i>=0;--i)
                for(int j=1;j<=n;++j)
                {
                    f[i][j]=f[i+1][j]+1;
                    if(j!=n&&sf[i][j][0]&&i+ti[j]<=t) f[i][j]=min(f[i][j],f[i+ti[j]][j+1]);
                    if(j!=1&&sf[i][j][1]&&i+ti[j-1]<=t) f[i][j]=min(f[i][j],f[i+ti[j-1]][j-1]);
                }
            printf("Case Number %d: ",++cas);
            if(f[0][1]>=M) printf("impossible
    ");
            else printf("%d
    ",f[0][1]);
        }
        return 0;
    }
  • 相关阅读:
    SQL作业的操作全
    ISAPI Rewrite 实现简单url重写、二级域名重写
    wwf mvc学习
    如何扩大内需
    惊喜
    无限级分类查询
    杂记
    20130118SQL记录
    百度调价HttpWebRequest
    检查外链的方法
  • 原文地址:https://www.cnblogs.com/bzmd/p/6295162.html
Copyright © 2020-2023  润新知