题目链接

小Ho有一张白纸,上面有NxN个格子。小Ho可以选择一个格子(X, Y),在上面滴一滴墨水。如果这滴墨水的颜色深度是G,那么这个格子也会被染成深度为G的格子。同时周围的格子也会被这滴墨水浸染,不过颜色深度会略微降低。具体来说,如果一个格子距离(X, Y)的曼哈顿距离是D,那么它会被染成深度为max{0, G-D}的格子。

例如在(3, 3)滴一滴颜色深度为10的墨水,则(2, 3)(4, 3)(3, 2)(3, 4)四个格子会被染成深度为9,(1, 3)(2, 2)(2, 3)(3, 1)(3, 5)(4, 2)(4, 4)(5, 3)会被染成深度为8……

现在小Ho在K个格子中都滴了一滴墨水。于是一个格子可能被多滴墨水浸染,这时它的颜色深度是单滴墨水浸染时最高的颜色深度。

给定K滴墨水的位置和颜色深度,你能帮小Ho算出最后整张白纸上所有格子的颜色深度吗?

输入

第一行包含两个整数N和K。

以下K行每行包含三个整数Xi, Yi和Gi

对于30%的数据, 1 ≤ N, K ≤ 100

对于100%的数据,1 ≤ N ≤ 1000 1 ≤ K ≤ 10000  0 ≤ Xi, Yi < N  0 ≤ Gi < 2048

输出

输出一个NxN的矩阵,代表每个格子最终的颜色深度

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
struct Node{
int x,y;
int depth;
Node(){};
Node(int x,int y,int depth):x(x),y(y),depth(depth){};
bool operator<(const Node& another) const{
return this->depth<another.depth;
}
};
const int N = 1024;
const int skip[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int A[N][N];
priority_queue<Node> q;
int main(){
int n,t; cin>>n>>t;
while(t--){
int x,y,d;
scanf("%d%d%d",&x,&y,&d);
q.push(Node(x,y,d));
}
memset(A,0,sizeof(A));
while(!q.empty()){
Node cur = q.top(); q.pop();
if(cur.depth<=A[cur.x][cur.y]) continue;
A[cur.x][cur.y]=cur.depth;
for(int i=0;i<4;i++){
int tx = cur.x + skip[i][0];
int ty = cur.y + skip[i][1];
if(tx<0||ty<0||tx>=n||ty>=n) continue;
if(cur.depth-1>A[tx][ty]){
q.push(Node(tx,ty,cur.depth-1));
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) printf("%d ",A[i][j]); puts("");
}
return 0;
}

hiho 1613 - 墨水滴 - bfs+优先队列 *的更多相关文章

  1. POJ 1724 ROADS(BFS+优先队列)

    题目链接 题意 : 求从1城市到n城市的最短路.但是每条路有两个属性,一个是路长,一个是花费.要求在花费为K内,找到最短路. 思路 :这个题好像有很多种做法,我用了BFS+优先队列.崔老师真是千年不变 ...

  2. hdu 1242 找到朋友最短的时间 (BFS+优先队列)

    找到朋友的最短时间 Sample Input7 8#.#####. //#不能走 a起点 x守卫 r朋友#.a#..r. //r可能不止一个#..#x.....#..#.##...##...#.... ...

  3. HDU 1428 漫步校园 (BFS+优先队列+记忆化搜索)

    题目地址:HDU 1428 先用BFS+优先队列求出全部点到机房的最短距离.然后用记忆化搜索去搜. 代码例如以下: #include <iostream> #include <str ...

  4. hdu1839(二分+优先队列,bfs+优先队列与spfa的区别)

    题意:有n个点,标号为点1到点n,每条路有两个属性,一个是经过经过这条路要的时间,一个是这条可以承受的容量.现在给出n个点,m条边,时间t:需要求在时间t的范围内,从点1到点n可以承受的最大容量... ...

  5. BFS+优先队列+状态压缩DP+TSP

    http://acm.hdu.edu.cn/showproblem.php?pid=4568 Hunter Time Limit: 2000/1000 MS (Java/Others)    Memo ...

  6. POJ - 2312 Battle City BFS+优先队列

    Battle City Many of us had played the game "Battle city" in our childhood, and some people ...

  7. HDU 1242 -Rescue (双向BFS)&amp;&amp;( BFS+优先队列)

    题目链接:Rescue 进度落下的太多了,哎╮(╯▽╰)╭,渣渣我总是埋怨进度比别人慢...为什么不试着改变一下捏.... 開始以为是水题,想敲一下练手的,后来发现并非一个简单的搜索题,BFS做肯定出 ...

  8. hdu 2102 A计划 具体题解 (BFS+优先队列)

    题目链接:pid=2102">http://acm.hdu.edu.cn/showproblem.php?pid=2102 这道题属于BFS+优先队列 開始看到四分之中的一个的AC率感 ...

  9. D. Lunar New Year and a Wander bfs+优先队列

    D. Lunar New Year and a Wander bfs+优先队列 题意 给出一个图,从1点开始走,每个点至少要经过一次(可以很多次),每次经过一个没有走过的点就把他加到走过点序列中,问最 ...

随机推荐

  1. 子线程创建AlertDialog错误

    Can't create handler inside thread that has not called Looper.prepare()

  2. Eclipse中执行Ant脚本出现Could not find the main class的问题及解

    试过了:https://blog.csdn.net/bookroader/article/details/2300337 但是不管用,偶然看到这篇没有直接关系的 https://blog.csdn.n ...

  3. redis 篇 - list

    list 类似于 Python list lpush key value 向列表append value lrange key start stop 获取下标从 start 到 stop 的value ...

  4. Module build failed: Module failed because of a eslint warning

    eslint 设置 warning 级别,在 开发编译失败的原因,报错如下: F:\vue-mobile-skeleton>npm run dev > byhealth@1.0.0 dev ...

  5. php 与 nginx 的两种处理方式

    1.IP:Port 监听方式 php-fpm docker pull PHP:2.4-alpine nginx.conf fastcgi_pass 127.0.0.1:9000; php-fpm 在容 ...

  6. django-3-模板变量,过滤器,静态文件的引用

    <<<模板变量>>> (1)定义视图函数 通过context传递参数来渲染模板,context要是个字典 当模板变量为可调用对象的时候,函数不传递参数 (2)配置模 ...

  7. 《一个民企CEO的职场阳谋》–读书总结(上)

    职场是一个战场,很多人几十年在这里战斗. 职场是一个熔炉,很多人大半生在这里修炼. 如果在办公室里得不到快乐,生活就不会快乐. 如果公司里头感觉不到幸福,人生就不会幸福.(以上四句来自老刘的博客) & ...

  8. JAVA集合类型(二)

    JAVA集合类型 (现代的变量集群) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0J ...

  9. [React] Use the new React Context API

    The React documentation has been warning us for a long time now that context shouldn't be used and t ...

  10. [Tools] Using mobile device for debugging your mobile web site

    1. First you have enable "Developer mode" on your mobile device. (Different device might b ...