• UVA 10306 eCoins


    UVA_10306

        直接将x、y由小到大进行递推即可,对每个格子都尝试一下M个向量加法操作。

    #include<stdio.h>
    #include<string.h>
    #define MAXM 50
    #define MAXS 310
    #define INF 1000000000
    int M, S, x[MAXM], y[MAXM], f[MAXS][MAXS];
    void init()
    {
    int i;
    scanf("%d%d", &M, &S);
    for(i = 0; i < M; i ++)
    scanf("%d%d", &x[i], &y[i]);
    }
    void solve()
    {
    int i, j, k, newx, newy, min;
    min = INF;
    for(i = 0; i <= S; i ++)
    for(j = 0; j <= S; j ++)
    f[i][j] = INF;
    f[0][0] = 0;
    for(i = 0; i <= S; i ++)
    for(j = 0; j <= S; j ++)
    if(f[i][j] != INF)
    {
    if(i * i + j * j == S * S && f[i][j] < min)
    {
    min = f[i][j];
    continue;
    }
    for(k = 0; k < M; k ++)
    {
    newx = i + x[k];
    newy = j + y[k];
    if(newx <= S && newy <= S && f[i][j] + 1 < f[newx][newy])
    f[newx][newy] = f[i][j] + 1;
    }
    }
    if(min == INF)
    printf("not possible\n");
    else
    printf("%d\n", min);
    }
    int main()
    {
    int t;
    scanf("%d", &t);
    while(t --)
    {
    init();
    solve();
    }
    return 0;
    }


  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    非数值数据的编码方式
    定点数
    C语言||作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
  • 原文地址:https://www.cnblogs.com/staginner/p/2264028.html
Copyright © 2020-2023  润新知