思路:对于每个点出发bfs做一次dp, dp[ i ][ j ][ k ] 表示从枚举的该点能不能经过k个障碍物到达(i , j)。

 #include<bits/stdc++.h>
#define LL long long
#define ll long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int,int>
#define piii pair<int, pair<int,int> > using namespace std; const int N = ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const int Mod = ; int dx[] = {, , , -}, dy[] = {, -, , };
bool dp[N][N][];
int s[N][N];
int n, m, t; bool check(int x, int y) {
if(x < || x >= n) return false;
if(y < || y >= m) return false;
return true;
} void bfs(int sx, int sy) {
queue<piii> que;
if(s[sx][sy]) {
que.push(mk(, mk(sx, sy)));
dp[sx][sy][] = true;
} else {
que.push(mk(, mk(sx, sy)));
dp[sx][sy][] = true;
} while(!que.empty()) {
piii u = que.front(); que.pop();
int x = u.se.fi, y = u.se.se, w = u.fi;
for(int i = ; i < ; i++) {
int nx_x = x + dx[i], nx_y = y + dy[i];
if(check(nx_x, nx_y)) {
int nx_w = w + s[nx_x][nx_y];
if(nx_w <= t && !dp[nx_x][nx_y][nx_w]) {
que.push(mk(nx_w, mk(nx_x, nx_y)));
dp[nx_x][nx_y][nx_w] = true;
}
}
}
}
}
int main() {
scanf("%d%d%d", &n, &m, &t);
for(int i = ; i < n; i++)
for(int j = ; j < m; j++)
scanf("%1d", &s[i][j]); int ans = ;
for(int i = ; i < n; i++) {
for(int j = ; j < m; j++) {
memset(dp, false, sizeof(dp));
bfs(i, j);
for(int u = ; u < n; u++) {
for(int v = ; v < m; v++) {
for(int k = ; k <= t; k++) {
if(dp[u][v][k]) {
ans = max(ans, (i - u) * (i - u) + (j - v) * (j - v));
break;
}
}
}
}
}
} printf("%.6f\n", sqrt(ans));
return ;
} /*
*/

bzoj 1295 1295: [SCOI2009]最长距离的更多相关文章

  1. 【BZOJ 1295】 [SCOI2009]最长距离

    Description windy有一块矩形土地,被分为 N*M 块 1*1 的小格子. 有的格子含有障碍物. 如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离. 如果从格 ...

  2. BZOJ 1295: [SCOI2009]最长距离 spfa

    1295: [SCOI2009]最长距离 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1295 Description windy有一块 ...

  3. bzoj 1295: [SCOI2009]最长距离

    题目链接 1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1165  Solved: 619[Submit][ ...

  4. BZOJ 1295: [SCOI2009]最长距离( 最短路 )

    把障碍点看做点(边)权为1, 其他为0. 对于每个点跑spfa, 然后和它距离在T以内的就可以更新答案 ------------------------------------------------ ...

  5. 1295: [SCOI2009]最长距离

    1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 960  Solved: 498[Submit][Status ...

  6. [BZOJ1295][SCOI2009]最长距离 最短路+枚举

    1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1683  Solved: 912[Submit][Statu ...

  7. 【BZOJ1295】[SCOI2009]最长距离(最短路)

    [BZOJ1295][SCOI2009]最长距离(最短路) 题面 BZOJ 洛谷 题解 这题很妙啊. 我们枚举一个点,只需要考虑到他的最远点就行了,显然只需要考虑一个点即可.那么这两个点之前联通的最小 ...

  8. BZOJ_1295_[SCOI2009]最长距离_dij

    BZOJ_1295_[SCOI2009]最长距离_dij Description windy有一块矩形土地,被分为 N*M 块 1*1 的小格子. 有的格子含有障碍物. 如果从格子A可以走到格子B,那 ...

  9. [BZOJ 1295][SCOI2009]最长距离(SPFA+暴力)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1295 分析:很巧妙的一道spfa从搜索的角度是搜索在所有1中搜索删除哪T个1,对整个图询问,这 ...

  10. 【BZOJ】1295: [SCOI2009]最长距离(spfa+暴力)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1295 咳咳..此题我不会做啊..一开始认为是多源,可是有移除物品的操作,所以不行. 此题的思想很巧妙 ...

随机推荐

  1. [应用篇]第三篇 JSP 标准标签库(JSTL)总结

    有一种友谊叫做: "陪我去小卖部." "不去," "我请你" "走." 你想起了谁:胖先生?还有人陪你吗? JSP 标准 ...

  2. UIViewController的初始化

    UIViewController的初始化一般有两个: -(instancetype)init; -(instancetype)initWithNibName:(NSString *)nibNameOr ...

  3. bzoj千题计划173:bzoj1257: [CQOI2007]余数之和sum

    http://www.lydsy.com/JudgeOnline/problem.php?id=1257 k%i=k-int(k/i)*i 除法分块,对于相同的k/i用等差序列求和来做 #includ ...

  4. bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...

  5. 简易jQuery插件

    之前写过jQuery插件的笔记 如何用jQuery封装插件 我一直觉得前面讲了一大堆闭包和三种插件封装模式有点冗余,那篇笔记我直到记录到后面才发现这事情很简单,想来想去还是觉得网上的一些文章把事情搞复 ...

  6. 51nod1450 闯关游戏

    题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 一个游戏App由N个小游戏(关卡)构成,将其标记为0,1,2,..N-1.这些小游戏没有相互制约的性质 ...

  7. celery简介

    目录 Celery简介 Celery架构 中间件选择 Celery序列化 简单项目 Celery简介 celery userguide 知乎大神解释celery Celery(芹菜)是基于Python ...

  8. 判断最小生成树是否为一(krustra)

    题目链接:https://vjudge.net/contest/66965#problem/K 具体思路: 首先跑一遍最短路算法,然后将使用到的边标记一下,同时使用一个数组记录每一个权值出现的次数,如 ...

  9. UNIX网络编程 第6章 I/O复用:select和poll函数

    UNIX网络编程 第6章 I/O复用:select和poll函数

  10. JS合并单元格

    在Web中经常需要合并单元格,例如对于下面一个表格: <!DOCTYPE html> <html> <head> <meta charset="UT ...