思路:对于每个点出发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. select 的字段为空,给他显示默认值

    select 的字段为空,给他显示默认值: 解决办法一: select id,name,(case when level is null then 0 else level end) as a fro ...

  2. Swiper点击后自动轮播停止情况

    用户操作swiper之后,是否禁止autoplay.默认为true:停止. 如果设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay. 操作包括触碰,拖动,点击 ...

  3. func_get_args()获取参数

    php中func_get_args()可以获取多个参数,讲多个参数放在数组里面. <?php function show() { $attr = func_get_args();//获取输入的参 ...

  4. 【leetcode 简单】 第八十六题 有效的完全平方数

    给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 注意:不要使用任何内置的库函数,如  sqrt. 示例 1: 输入: 16 输出: Tr ...

  5. hdu 1251 统计难题(字典树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    M ...

  6. [转]std::set、自定义类型与比较函数

    转自:http://www.189works.com/article-42025-1.html 怎样在set中放入自定义类型?这个问题通过谷歌就可以得到不少答案:1.定义一个函数对象并在定义set的时 ...

  7. Mysql中truncate table和delete语句的区别

    Mysql中的truncate table和delete语句都可以删除表里面所有数据,但是在一些情况下有些不同! 例子: truncate table gag; (1)truncate table删除 ...

  8. 最长子串(Leetcode-3 Longest Substring Without Repeating Characters)

    Question: Given a string, find the length of the longest substring without repeating characters. Exa ...

  9. 使用apt-get安装Nginx

    Ubuntu 18.04,Nginx 1.14.0, 一直想在Linux上安装Nginx,一直没找到契机,很大原因是自己不熟悉,Ubuntu没安装好吧!今天下午学习了Ubuntu安装软件的一些资料,那 ...

  10. scala中“_”的用法

    参见链接 http://blog.csdn.net/i6448038/article/details/50017427