8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

「美团 CodeM 资格赛」跳格子

来源:本站原创 浏览:124次 时间:2021-10-12
题目描述

nnn 个格子排成一列,一开始,你在第一个格子,目标为跳到第 n 个格子。在每个格子 i 里面你可以做出两个选择:

  • 选择「a」:向前跳 ai 步。
  • 选择「b」:向前跳 bi 步。

把每步的选择写成一个关于字符 a 和 b的字符串。求到达格子 n 的方案中,字典序最小的字符串。当做出某个选择时,你跳出了这n个格子的范围,则这个选择是不合法的。

  • 当没有合法的选择序列时,输出 No solution!
  • 当字典序最小的字符串无限长时,输出 Infinity!
  • 否则,输出这个选择字符串。
输入格式

输入有三行。
第一行输入一个整数 n。
第二行输入 n 个整数,分别表示 ai。
第三行输入 n 个整数,分别表示 bi。

输出格式

输出一行字符串表示答案。

样例样例输入
75 -3 6 5 -5 -1 6-6 1 4 -2 0 -2 0
样例输出
abbbb
数据范围与提示

1≤n≤105

−n≤ai,bi≤n

 

Solution:

  本题主要是贪心加搜索。由于题目中需要输出字典序最小的字符串,所以我们贪心尽可能的走a是肯定没有问题的。于是我们从前往后dfs,尽可能的走a,判断走a后的点能否到达n点,若能到达就标记,当然到达n后就跳出dfs,dfs完后判断n点是否被标记,没被标记就无解,被标记了就再来一次dfs记录路径,同时标记点是否被访问,若一个点被访问两次则说明有环,输出Infinity。否则就输出记录的字符串。

代码:

 

#inclu������,����de#define il inline#define ll long long #define debug pritnf("%d %s\n",__LINE__,__FUNCTION__)using namespace std;const int N=100005;il int gi(){    int a=0;char x=getchar();bool f=0;    while((x<'0'||x>'9')&&x!='-')x=getchar();    if(x=='-')x=getchar(),f=1;    while(x>='0'&&x<='9')a=a*10+x-48,x=getchar();    return f?-a:a;}int n,tot,net[N][2];char s[N];bool vis[N],pd[N];il void dfs(int x){    vis[x]=1;    if(x==n){pd[x]=1;return;}    for(int i=0;i<=1;i++){        int nx=x+net[x][i];        if(1<=nx&&nx<=n){            if(!vis[nx])dfs(nx);            if(pd[nx])pd[x]=1;        }    }}il void killans(int x){    if(x==n){        for(int i=1;i<=tot;i++)printf("%c",s[i]);        exit(0);    }    if(vis[x]){printf("Infinity!");exit(0);}    for(int i=0;i<=1;i++)    {        int nx=x+net[x][i];        if(1<=nx&&nx<=n){            if(pd[nx])s[++tot]=i+'a',killans(nx);        }    }}int main(){    n=gi();    for(int i=1;i<=n;i++)net[i][0]=gi();    for(int i=1;i<=n;i++)net[i][1]=gi();    dfs(1);    if(!pd[1]){printf("No solution!");return 0;}    memset(vis,0,sizeof(vis));    killans(1);    return 0;}

 

 

 

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net