zoukankan      html  css  js  c++  java
  • POJ 1059 Chutes and Ladders

    POJ_1059

        由于题目说了最后掷骰子的次数不会超过1000,所以直接模拟掷骰子的过程即可。

    #include<stdio.h>
    #include<string.h>
    #define MAXN 1010
    #define MAXD 110
    #define MAXP 10
    int P, die[MAXN], g[MAXD], turn[MAXP], a[MAXP];
    void init()
    {
    int i, j, k;
    for(i = 0; ; i ++)
    {
    scanf("%d", &k);
    if(!k)
    break;
    die[i] = k;
    }
    }
    void solve()
    {
    int i, j, k;
    memset(g, 0, sizeof(g));
    for(;;)
    {
    scanf("%d%d", &i, &j);
    if(!i && !j)
    break;
    g[i] = j;
    }
    for(;;)
    {
    scanf("%d", &k);
    if(!k)
    break;
    if(k < 0)
    g[-k] = -1;
    else
    g[k] = -2;
    }
    memset(turn, -1, sizeof(turn));
    memset(a, 0, sizeof(a));
    for(i = k = 0; ; i ++)
    {
    if(turn[k])
    {
    j = a[k] + die[i];
    if(j == 100)
    break;
    if(j > 100)
    {
    k = (k + 1) % P;
    continue;
    }
    if(g[j] == -2)
    {
    a[k] = j;
    continue;
    }
    if(g[j] == -1)
    {
    a[k] = j;
    turn[k] = 0;
    }
    else if(g[j] == 0)
    a[k] = j;
    else
    a[k] = g[j];
    }
    else
    turn[k] = -1;
    k = (k + 1) % P;
    }
    printf("%d\n", k + 1);
    }
    int main()
    {
    init();
    for(;;)
    {
    scanf("%d", &P);
    if(!P)
    break;
    solve();
    }
    return 0;
    }


  • 相关阅读:
    Laravel笔记
    Mysql函数大全
    nginx中文文档
    解析富文本框
    VSCode的C++环境配置,多cpp在同一文件夹(json方式)
    UltraISO光盘刻录
    plog日志库(c++)
    .NET Core安装
    Halcon深度学习——奇异值检测
    C++命名规范
  • 原文地址:https://www.cnblogs.com/staginner/p/2330737.html
Copyright © 2011-2022 走看看