码迷,mamicode.com
首页 > 其他好文 > 详细

【自编题】震惊!某菜鸡竟公然出题黑自己!

时间:2018-04-22 22:02:42      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:AC   name   需要   怎么   amp   ++   span   pen   n+1   

有巨佬有兴趣做一下吗?非常水的题。

手残的stg之路(gzz.cpp/pas)

题目背景

有一天,菜鸡手残zx在玩绀珠传E。当她打到123的4符:梦符「刈安色的迷梦」时,由于她太手残,怎么转圈也扭不过去。无奈之下,她放了一个b。但是从这之后她好像被123缠上了,连数学考试都考了123分。为了避免被zn骂,也为了不再被123纠缠下去,她立志要扭过这张符,用实力证明自己!

……

……

……

……

但是作为天下第一手残,她发现自己真的没法凭借自己的力量扭过去。于是她打算用计算机编程解决此问题。

题目描述

设这张符卡的弹幕被分成m×n的区域,每个区域有它的弹幕数量aij,自机所在的初始区域是(x,y)。手残zx只能控制自机向上下左右四个方向移动,且每次只能移动到比当前所在区域弹幕数量小的区域。已知自机从一个区域移动到另一个区域需要时间t。zx当然希望自己能扭越长时间越好。请输出她能扭的最长时间tmax。特别地,如果zx连1秒的时间都扭不下去,请输出“B”告诉她这里必须放b。

输入文件(gzz.in)

第一行五个数,分别是m,n,x,y,t

第2到n+1行,每行m个数,表示aij

输出文件(gzz.out)

一个数tmax,表示zx最多能扭的时间。如果tmax=0,输出“B”。

样例输入

5 5 3 3 1

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

样例输出

24

数据范围

对于100%的数据,1<= m,n,x,y <= 100,0 <= aij <= 10000,1<= t <= 1000

 

啊啊这道题我也不太清楚我能不能过(这丫的不是你自己出的题吗

我用的记忆化搜索dp。代码:

 1 #include<cstdio>
 2 #define zx author
 3 using namespace std;
 4 int m,n;
 5 int a[105][105];
 6 int f[105][105];
 7 int maxn(int a,int b)
 8 {
 9     if(a > b)    return a;
10     else    return b;
11 }
12 int js(int x,int y)
13 {
14     if(f[x][y] != 0)    return f[x][y];
15     int ans = 0;
16     if(x + 1 <= m && a[x][y] > a[x + 1][y])    ans = maxn(ans,js(x + 1,y) + 1);
17     if(y + 1 <= n && a[x][y] > a[x][y + 1])    ans = maxn(ans,js(x,y + 1) + 1);
18     if(x - 1 > 0 && a[x][y] > a[x - 1][y])    ans = maxn(ans,js(x - 1,y) + 1);
19     if(y - 1 > 0 && a[x][y] > a[x][y - 1])    ans = maxn(ans,js(x,y - 1) + 1);
20     return f[x][y] = ans;
21 }
22 int main()
23 {
24     freopen("gzz.in","r",stdin);
25     freopen("gzz.out","w",stdout);
26     int x,y;
27     int t;
28     scanf("%d%d%d%d%d",&m,&n,&x,&y,&t);
29     for(int i = 1;i <= m;i++){
30         for(int j = 1;j <= n;j++){
31             scanf("%d",&a[i][j]);
32         }
33     }
34     for(int i = 1;i <= m;i++){
35         for(int j = 1;j <= n;j++){
36             js(i,j);
37         }
38     }
39     if(js(x,y) == 0)    printf("B");
40     else    printf("%d",js(x,y) * t);
41     return 0;
42 }

自己出的题自己竟然不能确定,我真是太菜了

【自编题】震惊!某菜鸡竟公然出题黑自己!

标签:AC   name   需要   怎么   amp   ++   span   pen   n+1   

原文地址:https://www.cnblogs.com/aristocrat/p/8909019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!