bzoj 2364
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2346
比较裸的最短路(' ' ) 水题又多了一道
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std; const int maxn = 400010;
const int maxe = 2001000;
const int maxl = 510;
const int INF = 0x3f3f3f3f; struct edge {
int t, d;
edge* next;
}e[maxe * 2], *head[maxn]; int ne = 0; void addedge(int f, int t, int d) {
e[ne].t = t, e[ne].d = d, e[ne].next = head[f], head[f] = e + ne ++;
e[ne].t = f, e[ne].d = d, e[ne].next = head[t], head[t] = e + ne ++;
} struct node {
int pos, dis;
node(int a, int b) {
pos = a, dis = b;
}
}; bool operator < (const node &a, const node &b) {
return a.dis > b.dis;
} priority_queue <node> q;
int dis[maxn]; void dijkstra(int s, int t) {
memset(dis, INF, sizeof(dis)); dis[s] = 0;
for(int i = s; i <= t; ++ i) q.push(node(i, dis[i]));
while(!q.empty()) {
node x = q.top(); q.pop();
if(x.dis != dis[x.pos]) continue;
for(edge* p = head[x.pos]; p; p = p-> next)
if(dis[p-> t] > dis[x.pos] + p-> d)
dis[p-> t] = dis[x.pos] + p-> d, q.push(node(p-> t, dis[p-> t]));
}
} int n, m; int getpos(int x, int t) {
return (x - 1) * (m + 1) + t;
} char s[maxl]; void sov() {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++ i) {
scanf("%s", s + 1);
for(int j = 1; j <= m; ++ j) {
if(s[j] == '/') addedge(getpos(i, j), getpos(i + 1, j + 1), 1), addedge(getpos(i + 1, j), getpos(i, j + 1), 0);
else addedge(getpos(i, j), getpos(i + 1, j + 1), 0), addedge(getpos(i + 1, j), getpos(i, j + 1), 1);
}
}
dijkstra(getpos(1, 1), getpos(n + 1, m + 1));
if(dis[getpos(n + 1, m + 1)] == INF) printf("NO SOLUTION\n");
else printf("%d\n", dis[getpos(n + 1, m + 1)]);
} int main() {
//freopen("test.in", "r", stdin);
//freopen("test.out", "w", stdout);
sov();
return 0;
}
bzoj 2364的更多相关文章
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
- bzoj 刷水
bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...
随机推荐
- vue cli3以上的项目中如何使用axois请求本地json文件
首先明确一点,在vue cli3以上的版本中,存放静态资源的文件是public 我刚开始以为是和vue cli2一样需要放在static文件夹下,但是项目中没有这个文件夹,我就自己创建了一个,结果请求 ...
- java配置和tomcat安装
原文: https://www.cnblogs.com/lwjboke/p/7089126.html 下载: jdk历史版本 下载地址: http://www.oracle.com/technetwo ...
- A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications.
介绍 本指南的目的是大家感兴趣的惯性MEMS(微机电系统)传感器,特别是加速计和陀螺仪和IMU组合设备(惯性测量单元). 例如IMU单位:Acc_Gyro_6DOF对MCU处理单元UsbThumb提供 ...
- jenkins插件set build description使用规则
配置前要注意的点: 先安装插件:set build description 安装该插件后,在[Post-build Actions]栏目中会多出description setter功能,可以实现构建完 ...
- Redis详细用法
Redis详细用法 1.redis启动命令 本机Redis 安装路径是在usr/local/redis 目录下 启动命令: ./redis-server redis.conf(启动时指定配置文件) 测 ...
- 测开之路三十四:html常用标签
网页的结构: HTML:超文本标记语言是迄今为止网络上应用最为广泛的语言,也是构成网页文档的主要语言.HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声音.表格.链 ...
- 测开之路三十二:Flask基础之错误与重定向
错误处理,框架默认的错误为:not Found 可以捕获,并自定义 准备一张自定义图片,放在static文件夹下,并在template下创建一个html文件,引用该图片 捕获404状态,返回自定义页面 ...
- 配送单MYSQL ,一点都不机智
这是配送单制作,后面修改了下表 . 写的太乱. 不过也不想去修改了. 放在这里了.反正还能用. 不然就坑爹了. 以后写好一点. 这都是些神马, 太难受了. /* 配送单制作,缺少商品规格,以及库存查询 ...
- 安装第三方包&查看python版本/第三方包版本
安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...
- Linear Regression and Gradient Descent (English version)
1.Problem and Loss Function Linear Regression is a Supervised Learning Algorithm with input matrix ...