Gym 100803C — Shopping

来源:互联网 发布:如何使用jade软件 编辑:程序博客网 时间:2024/05/18 00:31

题目链接:Shopping

题意

在一条街上有1-n个店,你一开始在0这个位置,你需要访问每个店,并且最后到n+1这个点

然后有m个限制,就给你ci,di

表示你去ci这个店之前,你必须先到bi这个点才行

保证di>ci

问你最小距离走多少


贪心 少走回头路,那就走最大闭环 每走一次闭环 这段路就多走两次

代码参考自:http://www.cnblogs.com/qscqesze/p/5143061.html

#include<stdio.h>#include<algorithm>#define maxn 1010using namespace std;int main(){    int n,m,i,j,r[maxn],x,y,ans;    while(scanf("%d%d",&n,&m)!=EOF)    {        for(i=1;i<=n+1;i++)        {            r[i]=i;        }        while(m--)        {            scanf("%d%d",&x,&y);            r[x]=max(r[x],y);        }        ans=n+1;        for(i=1;i<=n;)        {            int t=r[i];            int now=i;            while(now<=t)            {                t=max(t,r[now]);                now++;            }            ans+=2*(t-i);            i=now;        }        printf("%d\n",ans);    }}


原创粉丝点击