zoukankan      html  css  js  c++  java
  • 洛谷 P1076 寻宝 解题报告

    P1076 寻宝

    题目描述

    传说很遥远的藏宝楼顶层藏着诱人的宝藏。小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书。说明书的内容如下:

    藏宝楼共有(N+1)层,最上面一层是顶层,顶层有一个房间里面藏着宝藏。除了顶层外,藏宝楼另0有(N)层,每层(M)个房间,这(M)个房间围成一圈并按逆时针方向依次编号为 (0,…,M-1) 。其中一些房间有通往上一层的楼梯,每层楼的楼梯设计可能不同。每个房间里有一个指示牌,指示牌上有一个数字 (x) ,表示从这个房间开始按逆时针方向选择第(x) 个有楼梯的房间(假定该房间的编号为(k)),从该房间上楼,上楼后到达上一层的(k)号房间。比如当前房间的指示牌上写着2 ,则按逆时针方向开始尝试,找到第 2个有楼梯的房间,从该房间上楼。如果当前房间本身就有楼梯通向上层,该房间作为第一个有楼梯的房间。

    寻宝说明书的最后用红色大号字体写着:“寻宝须知:帮助你找到每层上楼房间的指示牌上的数字(即每层第一个进入的房间内指示牌上的数字)总和为打开宝箱的密钥”。

    请帮助小明算出这个打开宝箱的密钥。

    输入输出格式

    输入格式:

    第一行2个整数(N)(M),之间用一个空格隔开.(N)表示除了顶层外藏宝楼共(N)层楼,(M)表示除顶层外每层楼有(M)个房间。

    接下来$N×M (行,每行两个整数,之间用一个空格隔开,每行描述一个房间内的情况,其中第)j(i−1)×M+j$ 行表示第(i)(j-1)号房间的情况(( i=1,2,…, N,j=1,2,…,M))。第一个整数表示该房间是否有楼梯通往上一层( 0表示没有, 1表示有),第二个整数表示指示牌上的数字。注意,从 (j) 号房间的楼梯爬到上一层到达的房间一定也是(j)号房间。

    最后一行,一个整数,表示小明从藏宝楼底层的几号房间进入开始寻宝(注:房间编号从 0 开始)。

    输出格式:

    一个整数,表示打开宝箱的密钥,这个数可能会很大,请输出对 20123取模的结果即可。


    本小废物被黄题模拟卡了一会儿,悼念一下写一个。。。

    读懂题以后我们发现就是一个纯模拟,只是如果某个房间号很大的话,我们得先mod这个房间有楼梯的房间个数,否则会tle

    然后,我就错在了这点。如果mod以后为0,还要加回去的...


    code:

    #include <cstdio>
    const int mod=20123;
    const int M=102;
    const int N=10010;
    int f[N][M],mark[N][M],now,n,m,ans=0;
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                scanf("%d%d",&f[i][j],&mark[i][j]);
                f[i][j]+=f[i][j-1];
            }
        scanf("%d",&now);
        now++;
        for(int i=1;i<=n;i++)
        {
            int k=mark[i][now];
            ans+=mark[i][now];
            ans%=mod;
            k=k-k/f[i][m]*f[i][m];
            if(!k) k=f[i][m];
            if(f[i][m]-f[i][now-1]<k) {k-=f[i][m]-f[i][now-1];now=1;}
            for(int j=now;;j++)
                if(f[i][j]-f[i][now-1]==k)
                {
                    now=j;
                    break;
                }
        }
        printf("%d
    ",ans);
        return 0;
    }
    
    

    2018.6.6

  • 相关阅读:
    Nop中的Cache浅析
    使用DapperExtensions实现简单仓储
    使用nodejs爬取拉勾苏州和上海的.NET职位信息
    使用Microsoft Fakes进行单元测试(2)
    使用Microsoft Fakes进行单元测试(1)
    小程序之滚动到页面底部
    小程序之动态修改页面标题
    小程序之面试题
    小程序之公共组件的开发
    小程序之web-view打开外部链接
  • 原文地址:https://www.cnblogs.com/butterflydew/p/9143898.html
Copyright © 2011-2022 走看看