BZOJ 2346 Lamp

不建边表是一定比建边表要快的。

对角线跑最短路。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define maxn 550
#define inf 2000000000
using namespace std;
int n,m,map[maxn][maxn][5],dis[maxn][maxn];
int dx[]={0,-1,-1,1,1},dy[]={0,-1,1,1,-1};
queue <int> q;
bool vis[maxn][maxn];
char s[maxn];
bool judge(int x,int y)
{
    if ((x>=1) && (x<=n+1) && (y>=1) && (y<=m+1)) return true;
    return false;
}
void spfa()
{
    for (int i=1;i<=n+1;i++)
        for (int j=1;j<=m+1;j++)
            dis[i][j]=inf;
    dis[1][1]=0;q.push(1);q.push(1);vis[1][1]=true;
    while (!q.empty())
    {
        int hx,hy;
        hx=q.front();q.pop();hy=q.front();q.pop();
        for (int i=1;i<=4;i++)
        {
            int tx=hx+dx[i],ty=hy+dy[i];
            if ((judge(tx,ty)) && (dis[tx][ty]>dis[hx][hy]+map[hx][hy][i]))
            {
                dis[tx][ty]=dis[hx][hy]+map[hx][hy][i];
                if (!vis[tx][ty]) {q.push(tx);q.push(ty);vis[tx][ty]=true;}
            }
        }
        vis[hx][hy]=false;
    }
}
int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++)
    {
        scanf("%s",s);
        for (int j=1;j<=m;j++)
        {
            if (s[j-1]==‘/‘) {map[i][j][3]=map[i+1][j+1][1]=1;map[i][j+1][4]=map[i+1][j][2]=0;}
            else {map[i][j+1][4]=map[i+1][j][2]=1;map[i][j][3]=map[i+1][j+1][1]=0;}
        }
    }
    spfa();
    if (dis[n+1][m+1]!=inf) printf("%d\n",dis[n+1][m+1]);
    else printf("NO SOLUTION\n");
    return 0;
} 
时间: 2024-08-06 07:36:43

BZOJ 2346 Lamp的相关文章

基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载

要达到的目的双Apache+PHP能正常的被DNS轮询解析到Apache 1 2 服务器能正常访问NFS上的静态资源PHP 1 2 服务器能正常访问NFS上的PHP资源Apache 1 2 和PHP 1 2服务器都能和MariaDB数据库服务器通信最终实现低价格提高网站负载的方案 由于这里使用了7台服务器所以下文区别服务器的方法请看命令行的[[email protected] ~]这个字段 服务器编号 服务器IP 服务器安装的服务 服务器系统 LookBack163 172.16.41.163

BZOJ 1013: [JSOI2008]球形空间产生器sphere

二次联通门 : BZOJ 1013: [JSOI2008]球形空间产生器sphere /* BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元 QAQ SB的我也能终于能秒题了啊 设球心的坐标为(x,y,z...) 那么就可以列n+1个方程,化化式子高斯消元即可 */ #include <cstdio> #include <iostream> #include <cstring> #define rg register #define Max

阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 3.错误注意****** 10 1.效果图 2.部署步骤 链接 http://jingyan.baidu.com/article/870c6fc31218e8b03fe4be16.html 首先安装apachecentos可以直接yum安装apache ?. 命令:yum install httpd ? //根据提示,输入Y安装即可成功安装? 然后启动apache,并且设置系统让?Apache 开机自动启动. 命

bzoj 3309 DZY Loves Math - 莫比乌斯反演 - 线性筛

对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b,求sigma(sigma(f(gcd(i,j)))) (i=1..a, j=1..b). Input 第一行一个数T,表示询问数. 接下来T行,每行两个数a,b,表示一个询问. Output 对于每一个询问,输出一行一个非负整数作为回答. Sample Input 4 7558588 9653114 6514903 445

【BZOJ】[HNOI2009]有趣的数列

[算法]Catalan数 [题解] 学了卡特兰数就会啦>_<! 因为奇偶各自递增,所以确定了奇偶各自的数字后排列唯一. 那么就是给2n个数分奇偶了,是不是有点像入栈出栈序呢. 将做偶数标为-1,做奇数标为+1,显然当偶数多于奇数时不合法,因为它压不住后面的奇数. 然后其实这种题目,打表就可知啦--QAQ 然后问题就是求1/(n+1)*C(2n,n)%p了,p不一定是素数. 参考bzoj礼物的解法. 看到网上清一色的素数筛+分解质因数解法,不解了好久,感觉写了假的礼物-- 后来觉得礼物的做法才比

洛谷 P2709 BZOJ 3781 小B的询问

题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数.小B请你帮助他回答询问. 输入输出格式 输入格式: 第一行,三个整数N.M.K. 第二行,N个整数,表示小B的序列. 接下来的M行,每行两个整数L.R. 输出格式: M行,每行一个整数,其中第i行的整数表示第i个询问的答案. 输入输出样例 输入样例#1: 6 4 3 1 3 2 1 1 3

虚拟机lamp环境下,Apache配置虚拟主机

1.在Apache配置文件中开启虚拟主机功能:即:Include etc//extra/httpd-vhosts.conf把前面的#去掉: 2.在extra目录下找到文件httpd-vhosts.conf,添加如下配置: <Directory "/Data/www/thinkphp"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Dire

BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)

012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插入操作.语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列

LAMP

LAMP:组合 L:linux A:httpd M:mysql.mariadb P:PHP.python Web资源的类型: 静态资源:原始形式与响应结果一致 动态资源:原始形式通常为程序文件,需要运行将运行结果显示给用户 CGI:协议: 可以让客户端,从客户端代理向运行在网络服务器上程序传数据,CGI描述了客户端和服务器程序之间传输数据的一种标准形式 数据的模型:层次.网状.关系 PHP:脚本的编程语言.为WED开发设计.将代码放到html中 httpd与PHP结合的方式: 一.CGI 二.m