当前位置: 首页 > news >正文

在线做章网站搜外友链平台

在线做章网站,搜外友链平台,网站是怎么做,web前端的软件HDU_3681 由于Y和G加起来不到15个&#xff0c;那么可以预先将F、Y、G之间的最短路处理出来&#xff0c;然后化归成TSP问题来做。 #include<stdio.h> #include<string.h> #include<algorithm> #include<queue> #define MAXD 20 int N, M, dis[MAXD][MAX…

HDU_3681

    由于Y和G加起来不到15个,那么可以预先将F、Y、G之间的最短路处理出来,然后化归成TSP问题来做。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#define MAXD 20
int N, M, dis[MAXD][MAXD], g[MAXD][MAXD], mark, Y, G, sx, sy, vis[MAXD][MAXD];
int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};
char b[MAXD][MAXD];
int f[1 << 15 | 10][MAXD];
void init()
{int i, j;Y = 1;for(i = 1; i <= N; i ++){scanf("%s", b[i] + 1);for(j = 1; j <= M; j ++){if(b[i][j] == 'F') g[i][j] = 0, sx = i, sy = j;else if(b[i][j] == 'S') g[i][j] = -1;else if(b[i][j] == 'Y') g[i][j] = Y ++;else if(b[i][j] == 'D')    g[i][j] = -2;}}mark = (1 << Y) - 2, G = Y;for(i = 1; i <= N; i ++)for(j = 1; j <= M; j ++)if(b[i][j] == 'G') g[i][j] = G ++;
}
inline int inside(int x, int y)
{return x >= 1 && x <= N && y >= 1 && y <= M;
}
void dfs(int x, int y)
{int i, nx, ny;vis[x][y] = 1;for(i = 0; i < 4; i ++){nx = x + dx[i], ny = y + dy[i];if(inside(nx, ny) && !vis[nx][ny] && g[nx][ny] != -2) dfs(nx, ny);}
}
int check()
{int i, j;memset(vis, 0, sizeof(vis));dfs(sx, sy);for(i = 1; i <= N; i ++)for(j = 1; j <= M; j ++)if(b[i][j] == 'Y' && !vis[i][j]) return 0;return 1;
}
void bfs(int sx, int sy)
{int i, j, x, y, nx, ny, id = g[sx][sy];memset(vis, -1, sizeof(vis));std::queue <int> q;vis[sx][sy] = 0;q.push(sx * (M + 1) + sy);while(!q.empty()){x = q.front() / (M + 1), y = q.front() % (M + 1), q.pop();if(g[x][y] >= 0) dis[id][g[x][y]] = vis[x][y];for(i = 0; i < 4; i ++){nx = x + dx[i], ny = y + dy[i];if(inside(nx, ny) && vis[nx][ny] == -1 && g[nx][ny] != -2)vis[nx][ny] = vis[x][y] + 1, q.push(nx * (M + 1) + ny);}}
}
int dp(int limit)
{int i, j, k;memset(f, -1, sizeof(f));f[1][0] = limit;for(i = 1; i < (1 << G); i ++)for(j = 0; j < G; j ++){if(f[i][j] == -1) continue;if((i & mark) == mark) return 1;for(k = 0; k < G; k ++)if((i & 1 << k) == 0 && f[i][j] >= dis[j][k]){if(k >= Y) f[i | 1 << k][k] = limit;else f[i | 1 << k][k] = std::max(f[i | 1 << k][k], f[i][j] - dis[j][k]);}}return 0;
}
void solve()
{int i, j;if(Y == 1){printf("0\n");return ;}if(!check()){printf("-1\n");return ;}memset(dis, 0x3f, sizeof(dis));for(i = 1; i <= N; i ++)for(j = 1; j <= M; j ++)if(g[i][j] >= 0) bfs(i, j);int min = 0, max = 1000, mid;for(;;){mid = min + max + 1 >> 1;if(mid == max) break;if(dp(mid)) max = mid;else min = mid;}printf("%d\n", mid);
}
int main()
{while(scanf("%d%d", &N, &M), N || M){init();solve();}return 0;
}
http://www.lbrq.cn/news/2516275.html

相关文章:

  • 政府网站 建设依据nba交易最新消息汇总
  • 用jsp做网站登录界面模板潍坊网站关键词推广
  • 怎么找做网站的客户中国的搜索引擎有哪些
  • 上海比较好的服装外贸公司优化网站seo策略
  • 连州住房建设局网站王通seo教程
  • 厦门网站建设公司哪家好seo技术培训沈阳
  • 漳州网站建设回忆互联客服QQ友情链接推广平台
  • 老网站改版做别的上海网络营销seo
  • 网站建设公司优惠大酬宾活动合肥网站建设公司
  • 正规网站建设费用湖北网络推广有限公司
  • 百度个人网站建设seo工作流程图
  • 做铝材哪些网站招聘app拉新任务平台
  • 惠州水口网站建设网站建设规划书
  • 网站建设 长摊 无形资产2345网址导航官网下载安装
  • 任何人任意做网站销售产品违法吗产品的推广及宣传思路
  • 济南哪里有做网站的产品推广文案范文
  • 达州做网站的公司有哪些兰州网络优化seo
  • 北京网站建设的服务商百度邮箱注册入口
  • 网站版块设计百度一下打开网页
  • 自己做软件的网站长春seo优化企业网络跃升
  • 企业服务网站制作热点新闻事件
  • 成都专业建站公司新网站百度多久收录
  • 建设品牌型网站制作成都网站排名 生客seo
  • 网站建设与制作价格百度地图优化排名方法
  • 做本地网站赚钱吗申泽seo
  • 推荐一个做健身餐的网站个人免费网站申请注册
  • 漯河网站建设哪家超级外链工具 增加外链中
  • 手机网站显示建设中英文seo是什么意思
  • 泰州网站设计北京seo百科
  • 科技未来网站建设长沙百度seo
  • 【网络工程师软考版】路由协议 + ACL
  • BT131-800-ASEMI家电领域专用BT131-800
  • 泛微E9 引入高版本spring导致webservices接口报错
  • 机器学习第二课之线性回归的实战技巧
  • 【C++算法】72.队列+宽搜_二叉树的最大宽度
  • 【QT搭建opencv环境】