• Codeforces 1130D1 Toy Train (Simplified) (思维)【贪心】


    <题目链接>

    题目大意:

    有一个的环形火车站,其中有$[1,n] n$个站台,站台上能够放糖果,火车只能朝一个方向移动,如果火车在站台$i$,那么下一秒就会在$i+1$站(如果$i=n$,则下一站为1),现在有$m$ 个运输糖果的方案,$s  e$表示站台$s$有一个糖果,现在需要将其运往站台$e$。火车容量不限,但是每次只能从站台上取出一颗糖果,火车可以卸载任意数量的糖果。现在求出火车从每个站台出发,完成所有糖果运输任务的最短时间。

    #include <bits/stdc++.h>
    using namespace std;
    #define N int(5e3+7)
    int cnt[N],mnri[N];
    int main(){
        int n,m,a,b;
        scanf("%d %d",&n,&m);
        for(int i=1;i<=n;++i)mnri[i]=1e9;
        for(int i=0;i<m;++i){
            scanf("%d %d",&a,&b);
            cnt[a]++;    //得到这个点能够收集的糖果数
            mnri[a]=min(mnri[a],(b>a)?(b-a):(n-a+b));    //起点到终点的环型距离
        }
        for(int i=1;i<=n;++i){    //枚举起点
            int ans=0;
            for(int j=1;j<=n;++j){   //枚举终点
                if(cnt[j]){     //一个位置经过的次数为糖果数(因为一定要从这个点取出这么多糖果),但是最后一圈可以不用跑完整的一圈
                    int to=((j>=i)?(j-i):(n-i+j))+(cnt[j]-1)*n+mnri[j];
                    ans=max(ans,to);    //送完所有糖果的最少时间为送完每个糖果点的糖果的最多时间
                }
            }
            printf("%d ",ans);
        }puts("");
    }   

    2019-02-25

  • 相关阅读:
    VS操作Sqlite数据库
    Sqlite官方下载对应版本注意细节
    样式
    移动端问题
    table最终版IE(浏览器中宽度不起作用)
    pointer-event:none;在IE浏览器中不起作用
    伪类的使用
    针对谷歌浏览器写的css样式
    IE浏览器中textarea有滚动条出现
    父级元素被子元素的margin-top值影响的解决方案
  • 原文地址:https://www.cnblogs.com/00isok/p/10434366.html
Copyright © 2020-2023  润新知