一道宽搜模版题,可写错了两个地方的我只得了56(掩面痛哭)

http://10.37.2.111/problem.php?id=1345

先看看正确的

#include <bits/stdc++.h>
#define read read()
#define up(i,l,r) for(int i = l; i<=r; i++)
using namespace std;

int read
{
    ; char ch = getchar();
     || ch > )  ch = getchar();
     && ch <= ) {x =  * x + ch - ; ch = getchar();}
    return x;
}

;

int n,m,k;
int sx,sy,ex,ey;
int ans = INT_MAX;
,,-, ,};//上,下,左,右;
,, ,-,};
struct node{int x,y,step;}st;
int th[N][N],vis[N][N];
int nx,ny;

void updata(int i,int p)
{
    ) (nx += p) > n ?nx = n : nx;     //上
    ) (nx -= p) <  ?nx =  : nx;//下
    ) (ny -= p) <  ?ny =  : ny;//左
    ) (ny += p) > m ?ny = m : ny;//右
}

void bfs()
{
    queue<node>q;
    st.step = ;
    st.x = sx;
    st.y = sy;
    q.push(st);
    vis[sx][sy]=;
    while(!q.empty())
    {
        node cur = q.front(); q.pop();
        );}
        up(i,,)
        {
            nx = cur.x + dx[i];
            ny = cur.y + dy[i];
|| ny <  || nx > n || ny > m || vis[nx][ny]) continue;
            vis[nx][ny] = ;
            node nxt; nxt.x = nx; nxt.y = ny; nxt.step = cur.step + ;
            q.push(nxt);
        }
    }
    printf("Impossible");
}

int main()
{
    freopen("hero2.in","r",stdin);
    n = read; m = read; k = read;
    int x,y;
    ;
    up(i,,k)
    {
        x = read; y = read; th[x][y] = read;
    }
    sx = read; sy = read;
    ex = read; ey = read;
    bfs();
}

错误1:代码笔误;

void updata(int i,int p)
{
    ) (nx += p) > n ?n : nx;     //上
    ) (nx -= p) <  ? : nx;//下
    ) (ny -= p) <  ? : ny;//左
    ) (ny += p) > m ?m : ny;//右
}

看出什么了吗? -> 忘了赋值了;

错误2:思维漏洞;

if(th[nx][ny]) updata(i,th[nx][ny]);

弹簧可以连续跳啊连续跳 -> 所以要多次更新

记住教训啊;

MZOJ 1345 hero的更多相关文章

  1. H5游戏开发之Stick Hero

    自从上次发布一个小恐龙游戏以后,到现在10天了,前后又写了3个游戏,挑了一个感觉比较有挑战的游戏和大家分享一下. 效果演示 这是我模拟一个苹果游戏<stick hero>游戏写的一个小游戏 ...

  2. BZOJ 1191 超级英雄 Hero 题解

    BZOJ 1191 超级英雄 Hero 题解 Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金 ...

  3. 2016HUAS暑假集训训练2 K - Hero

    题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/K 这也是一道贪心题,刚开始写时以为只要对每一敌人的攻击和血的乘积进行从小到大排序即 ...

  4. 【入门】匈牙利算法+HNOI2006 hero超级英雄

    一.关于匈牙利算法 匈牙利算法是由匈牙利数学家Edmonds提出的,用增广路径求二分图最大匹配的算法. 听起来高端,其实说白了就是: 假设不存在单相思(单身狗偷偷抹眼泪),在一个同性恋不合法的国家里( ...

  5. 2016HUAS_ACM暑假集训2K - Hero(英雄)

    这也属于一个贪心题.关键是排序的依据. 这题排序的依据是敌人的伤害/血量(DPS/HP),不难证明,当这个比值相同时,不论先解决谁效果是相同的.思路大部分在注释里. 题目大意: 假设你的血量无限,但是 ...

  6. bzoj 1191: [HNOI2006]超级英雄Hero

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB 二分图匹配... Description 现在电视台有一种节目叫做超 ...

  7. HDU 4901 The Romantic Hero

    The Romantic Hero Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %I64d & %I64u D ...

  8. HDU4901 The Romantic Hero 计数DP

    2014多校4的1005 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4901 The Romantic Hero Time Limit: 6000/30 ...

  9. HDU 4310 Hero (贪心算法)

    A - Hero Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Sta ...

随机推荐

  1. pta l2-1紧急救援(Dijkstra)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 题意:给n个城市,m条边,每个城市 ...

  2. HDFS之深入简出(一)

    分布式文件系统HDFS 一:概述 1.HDFS设计目标 2.HDFS核心组件 3.HDFS副本机制 4.HDFS环境搭建 5.HDFS shell命令  java api 6.HDFS读写流程 7.H ...

  3. Mastering Unity 2D Game Development

    Mastering Unity 2D Game Development will give your game development skills a boost and help you begi ...

  4. tcp/ip通信第5期之客户机端程序

    /*此程序是tcp/ip通信的客户机端程序, 测试运行在redhat6系统上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> ...

  5. java 基础之--反射详解

    java 反射绝大部分都位于 java.lang.reflect package 中:常用的类就是: 1.class类:代表一个类 2.field类:代表类的成员变量 3.method:代表类的方法 ...

  6. Cloud Foundry v2 部署及入门运维

    之前写过一个Guide for Cloud Foundry New Teamer.不过似乎已经有些过时,那会实验室主要是针对的CF v1进行的研究,现在已经全面进入V2时代了.所以更新一下关于Clou ...

  7. DOM系列基础知识

    DOM (Document Object Model) 即文档对象模型, 针对 HTML 和 XML 文档的 API (应用程序接口) .DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改 ...

  8. linux 发送Post请求 json格式

    curl -H "Content-type: application/json" -X POST -d '{"text":"总体来说很不错,环境挺好的 ...

  9. mybatis入门--#{}和${}的区别

    我们知道,在mybatis中,sql语句是需要我们自己写的.跟在普通的sql不一样的是,我们在使用mybatis框架的时候,使用的占位符不是 ? 而是 #{} 有时候还会出现这个符号 ${} 这些符号 ...

  10. PAT 1006 换个格式输出整数 (15)(C++&JAVA&Python)

    1006 换个格式输出整数 (15)(15 分) 让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(& ...