洛谷 P1076 寻宝 题解

今天又TM考试了......

这是T1,然后我模拟20分滚粗。

Analysis

在每层的时候用编号%这层可以上楼的房间个数就行了。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #define mod 20123
 6 #define maxn 10010
 7 #define maxm 110
 8 using namespace std;
 9 inline int read()
10 {
11     int x=0;
12     bool f=1;
13     char c=getchar();
14     for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
15     for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
16     if(f) return x;
17     return 0-x;
18 }
19 inline void write(int x)
20 {
21     if(x<0){putchar('-');x=-x;}
22     if(x>9)write(x/10);
23     putchar(x%10+'0');
24 }
25 int n,m,st,ans;
26 int map[maxn][maxm],map_s[maxn][maxm],num[maxn];
27 int main()
28 {
29 //    freopen("treasure.in","r",stdin);
30 //    freopen("treasure.out","w",stdout);
31     n=read();m=read();
32     int cnt=0,c=1;
33     for(int i=1;i<=n*m;i++)
34     {
35         int x,y;
36         
37         x=read();y=read();
38         map_s[c][cnt]=x;
39         if(x==1)num[c]++;
40         map[c][cnt]=y;
41         if(cnt==m-1)
42         {
43             cnt=0;
44             c++;
45         }
46         else cnt++;
47     }
48     st=read();
49     for(int i=1;i<=n;i++)
50     {
51         if(map_s[i][st]==0)
52         {
53             int xb=map[i][st];
54             xb%=num[i];
55             if(xb==0)xb+=num[i];
56             ans+=map[i][st];
57             ans%=mod;
58             while(xb>0)
59             {
60                 if(st==m-1)st=0;
61                 else st++;
62                 if(map_s[i][st]==1)xb--;
63             }
64         }
65         else if(map_s[i][st]==1)
66         {
67             int xb=map[i][st]-1;
68             xb%=num[i];
69             if(xb==0)xb+=num[i];
70             ans+=map[i][st];
71             ans%=mod; 
72             while(xb>0)
73             {
74                 if(st==m-1)st=0;
75                 else st++;
76                 if(map_s[i][st]==1)xb--;
77             }
78         }
79     }
80     write(ans);
81     return 0;
82 }
请各位大佬斧正(反正我不认识斧正是什么意思)

 

转载于:https://www.cnblogs.com/handsome-zyc/p/11288073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值