hiho 1613 墨水滴 [Offer收割]编程练习赛32 Problem C 优先队列+BFS
来源:互联网 发布:移动数据功能是什么 编辑:程序博客网 时间:2024/05/15 09:09
这个题挺简单的,也挺有意思,我第一次做这种优先队列结合BFS的题目,给的数据量很大,暴力肯定TLE,但是我们可以用优先队列进行剪枝,先处理颜色深度高的点,就是这样吧,代码很短。
#include <iostream>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string>#include <string.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <stack>#include <bits/stdc++.h>using namespace std;int N,K;int F[1009][1009];int d[4][2]={1,0,0,1,-1,0,0,-1};bool cango(int x,int y){ return x>=0&&x<N&&y>=0&&y<N;}struct node{ int deep; int x,y; node(){} node(int X,int Y,int D){ x=X; y=Y; deep=D; } friend bool operator<(const node&a,const node&b){ return a.deep<b.deep; }};priority_queue<node>q;void solve(){ memset(F,0,sizeof(F)); while(!q.empty()){ node t=q.top(); q.pop(); int x=t.x; int y=t.y; int de=t.deep; if(de>F[x][y]){ F[x][y]=de; for(int i=0;i<4;i++){ int newx=x+d[i][0]; int newy=y+d[i][1]; if(cango(newx,newy)&&de-1>F[newx][newy]){ q.push(node(newx,newy,de-1)); } } } }}int main(){ cin>>N>>K; for(int i=0;i<K;i++){ int x,y,d; scanf("%d%d%d",&x,&y,&d); q.push(node(x,y,d)); } solve(); for(int i=0;i<N;i++){ for(int j=0;j<N-1;j++){ cout<<F[i][j]<<" "; }cout<<F[i][N-1]<<endl; } return 0;}//// _oo0oo_// o8888888o// 88" . "88// (| -_- |)// 0\ = /0// ___/`---'\___// .' \\| |// '.// / \\||| : |||// \// / _||||| -:- |||||- \// | | \\\ - /// | |// | \_| ''\---/'' |_/ |// \ .-\__ '-' ___/-. /// ___'. .' /--.--\ `. .'___// ."" '< `.___\_<|>_/___.' >' "".// | | : `- \`.;`\ _ /`;.`/ - ` : | |// \ \ `_. \_ __\ /__ _/ .-` / /// =====`-.____`.___ \_____/___.-`___.-'=====// `=---='////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//// 佛祖保佑 永无BUG//////
阅读全文
1 0
- hiho 1613 墨水滴 [Offer收割]编程练习赛32 Problem C 优先队列+BFS
- hiho 1487 并查集+搜索 [Offer收割]编程练习赛11 problem C 岛屿3
- hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分
- hiho 1617 方格取数 [Offer收割]编程练习赛33 Problem C DP
- hiho 1625 重复字符串匹配 [Offer收割]编程练习赛35 Problem C KMP模板题
- hiho 1611 气泡图 [Offer收割]编程练习赛32 Problem A 数学公式暴力
- hiho 1612 候选人追踪 [Offer收割]编程练习赛32 Problem B 乱搞
- hiho[Offer收割]编程练习赛1
- hiho 1485 尺取法 [Offer收割]编程练习赛11 problem A hiho字符串
- hihocoder #1613 : 墨水滴 bfs+优先队列
- hiho 1486 DP+状压 [Offer收割]编程练习赛11 problem B 物品价值
- hiho 1599 dfs乱搞 [Offer收割]编程练习赛29 Problem A 逃离迷宫4
- hiho 1615 矩阵游戏II [Offer收割]编程练习赛33 Problem A 贪心暴力
- hiho 1619 “共同富裕” [Offer收割]编程练习赛34 Problem A 数学
- hiho 1620 股票价格3 [Offer收割]编程练习赛34 Problem B 单调栈
- hiho 1623 有歧义的号码 [Offer收割]编程练习赛35 Problem A
- hiho 1624 最短游览路线 [Offer收割]编程练习赛35 Problem B
- hiho 1626 缩写命名 [Offer收割]编程练习赛35 Problem D 二分图匹配
- 设计模式初探之策略模式
- 论文发表费用一般是多少
- C++风格_注释
- 讲给Android程序员看的前端教程(01)——HTML5入门
- Js实现轮播图
- hiho 1613 墨水滴 [Offer收割]编程练习赛32 Problem C 优先队列+BFS
- 安卓仿微信录音功能实现
- 超星雅尔Xposed跳课模块
- C#基础(一)
- android studio 解决Gradle :Resolve dependencies :classpath的办法
- 【阿里云】CentOS7系统下开发环境安装配置问题汇总:mysql5.6/zookeeper/redis
- 基本矩阵和单应矩阵的介绍及其适用场景分析
- 递增插入链表
- docker CE/EE 原生支持Kubernetes 之我见