U110111 jyttoby

    • 211提交
    • 69通过
    • 5.7K排名
  • 用户 ID110111
  • 用户类型 普通用户
  • 注册时间 2018-07-05 21:10

通过题目

[P1000] [P1001] [P1008] [P1012] [P1027] [P1330] [P1035] [P1860] [P1036] [P1040] [P1048] [P1055] [P1068] [P3500] [P1074] [P1822] [P1075] [P1076] [P1077] [P1085] [P1090] [P3523] [P1091] [P2139] [P1092] [P2183] [P1093] [P1115] [P2750] [P1123] [P1190] [P2594] [P1200] [P3116] [P1201] [P1202] [P1203] [P1204] [P1205] [P1216] [P1219] [P3212] [P1227] [P1421] [P1422] [P2048] [P1425] [P1529] [P1590] [P1596] [P1597] [P1608] [P1163] [P1689] [P1706] [P1908] [P1909] [P1957] [P1981] [P2058] [P2073] [P2068] [P2141] [P2559] [P2669] [P2733] [P1336] [P2855] [P3124] [P2871] [P2896] [P2063] [P2920] [P2932] [P2946] [P2949] [P3040] [P3036] [P3074] [P3864] [P3884] [P3352] [P3956] [P5016] [UVA227] [UVA455] [P3459] [UVA1225] [UVA1585]
统计数据非实时更新。

难易度统计

入门难度 16
普及- 23
普及/提高- 23
普及+/提高 3
提高+/省选- 4

统计数据非实时更新。

签名

作业:

luogu:1004 1020 1091 1439 1279 2733 1005 2734 1040

又有一道不知道为啥没过的题了:

Problem Description

Steve是一名矿工,他热衷于挖掘矿石。一天他来到了这片土地上,准备开采这里的矿产。他已经通过高(kai)科(wai)技(gua)手段了解到了这里的矿产分布,现在他想知道,在最多T个单位时间内,他能挖掘到的最大价值是多少?

Steve每个单位时间可以向左、右或下移动一格,并挖掘该格内的矿石。Steve不能向上移动、或是挖掘头顶的矿石。矿石不会被重复挖掘,意味着如果Steve经过一个格子多次,那么只有第一次经过可以获得相应价值的矿石。
Input

输入数据第一行为三个整数n,m,T,表示地图为n行m列,时间上限为T。

接下来n行,每行m个字符,含义如下:

0(数字零):表示该方格价值为0

1~9:表示该方格的价值

P:表示该方格为Steve的初始位置

*:表示该方格不能被挖掘或行走

数据保证第2行由m-1个"0"和1个"P"组成,且第3至n+1行不会出现"P"。
Output

输出文件仅一行,一个整数,表示Steve在时限内能够获得的最大价值。
Sample Input

3 4 3

0P00

*663

7*
Sample Output

15

对于100%的数据,1 <= n,m <= 10 ,1 <= T <= 10

时间限制:1s

空间限制:256MB

代码(60分):

#include<cstdio>
#include<cstring>
using namespace std;

char a[15][15],d[4][2]={{},{0,1},{1},{0,-1}},tmp,vis[15][15];
int ans,T;

void dfs(int x,int y,int t,int val){
    val>ans && (ans=val);
    if(t>T || a[x][y]=='*') return;
    tmp=vis[x][y],vis[x][y]=1;
    for(int i=1;i<=3;i++)
        dfs(x+d[i][0],y+d[i][1],t+1,val+(tmp?0:(a[x][y]^48)));
    vis[x][y]=0;
}

int main(){
    memset(a,'*',sizeof a);

    int n,m;
    char px,py;
    scanf("%d%d%d",&n,&m,&T);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            if(!~scanf(" %c",&a[i][j])) break;
            if(a[i][j]=='P') px=i,py=j,a[i][j]='0';
        }

    return dfs(px,py,0,0),printf("%d\n",ans),0;
}

评测记录:

Test #1: score: 10 Accepted time: 0ms memory: 1608kb
Test #2: score: 10 Accepted time: 0ms memory: 1580kb
Test #3: score: 0 Wrong Answer time: 0ms memory: 1624kb
Test #4: score: 0 Wrong Answer time: 0ms memory: 1580kb
Test #5: score: 10 Accepted time: 0ms memory: 1560kb
Test #6: score: 0 Wrong Answer time: 1ms memory: 1596kb
Test #7: score: 10 Accepted time: 0ms memory: 1716kb
Test #8: score: 0 Wrong Answer time: 0ms memory: 1580kb
Test #9: score: 10 Accepted time: 1ms memory: 1656kb
Test #10: score: 10 Accepted time: 2ms memory: 1628kb

题目:http://noi.openjudge.cn/ch0111/10/ https://www.luogu.org/problem/show?pid=P2855 不知道为啥10分的代码:https://www.luogu.org/record/show?rid=11712544

3016 20.00%

2552 22.06%

3136 25.64%

3055 26.67%

2983 27.52%

2685 28.08%

2997 29.31%

3880 29.65%

2895 30.08%

2771 30.54%

3496 30.85%

2960 31.80%

3390 32.61%

2872 32.62%

3094 32.74%

2866 34.33%

2539 34.41%

3111 35.70%

3074 36.73%

2504 36.94%

2902 37.23%

3040 37.67%

2896 38.00%

1227 38.07%

2932 38.91%

3884 39.07%

2884 39.29%

3062 40.22%

2980 40.67%

3375 41.00%

2777 41.67%

2335 42.20%

3030 42.66%

2878 42.68%

点击查看更多...