本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。

本文作者:ljh2000
作者博客:http://www.cnblogs.com/ljh2000-jump/
转载请注明出处,侵权必究,保留最终解释权!

题目链接:AGC012B Splatter Painting

正解:逆序暴力

解题报告:

  逆序染色,每次暴力做,每个点记录一下从这个点出发染色的最大的$d$,如果当前的$d<maxd[x]$,那么没必要再往下走下去。

  把没染色的点染上色就好了。

  每个点最多做$10$次。

//It is made by ljh2000
#include <algorithm>
#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <string>
#include <queue>
#include <cmath>
#include <ctime>
using namespace std;
typedef long long LL;
const int MAXN = 400011;
const int MAXM = 800011;
int n,m,Q,ecnt,first[MAXN],to[MAXM],nxt[MAXM],col[MAXN],maxd[MAXN];
struct ask{ int x,d,c; }q[MAXN];
inline void link(int x,int y){ nxt[++ecnt]=first[x]; first[x]=ecnt; to[ecnt]=y; }
inline void dfs(int x,int d,int c){if(!col[x]) col[x]=c; if(maxd[x]>=d) return ;if(d==0) return ; maxd[x]=d;for(int i=first[x];i;i=nxt[i]) {int v=to[i]; dfs(v,d-1,c);}
}inline void work(){scanf("%d%d",&n,&m); int x,y;for(int i=1;i<=m;i++) { scanf("%d%d",&x,&y); link(x,y); link(y,x); }scanf("%d",&Q); for(int i=1;i<=Q;i++) { scanf("%d%d%d",&q[i].x,&q[i].d,&q[i].c); }for(int i=Q;i>=1;i--) dfs(q[i].x,q[i].d,q[i].c);for(int i=1;i<=n;i++) printf("%d\n",col[i]);
}int main()
{work();return 0;
}

  

转载于:https://www.cnblogs.com/ljh2000-jump/p/6669124.html

AtCoder Grand Round 012B Splatter Painting相关推荐

  1. AtCoder Grand Contest 023 C - Painting Machines

    Description 一个长度为 \(n\) 的序列,初始都为 \(0\),你需要求出一个长度为 \(n-1\) 的排列 \(P\), 按照 \(1\) 到 \(n\) 的顺序,每次把 \(P_i\ ...

  2. 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)

    D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...

  3. 【每日亿题#12】AtCoder Grand Contest 021 (A ~ F)全部题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 AtCoder Grand Contest 021 题解 A. Digit Sum 2 B. ...

  4. AT2362 [AGC012B] Splatter Painting(思维、dfs染色、剪枝)

    AT2362 [AGC012B] Splatter Painting 题意 给一个n个点m条边的无向图,有q次操作 第i次操作,给出v,d,c,把所有到点v的距离不超过d的点都染上颜色c 问最后每个点 ...

  5. AtCoder Grand Contest 008: Contiguous Repainting(思维)

    Contiguous Repainting 时间限制: 2 Sec  内存限制: 256 MB 提交: 69  解决: 22 [提交][状态][讨论版][命题人:admin] 题目描述 There a ...

  6. Atcoder ARC062F - AtCoDeerくんとグラフ色塗り / Painting Graphs with AtCoDeer

    Atcoder ARC062F - AtCoDeerくんとグラフ色塗り / Painting Graphs with AtCoDeer 题目描述 简要题意:给定一个有标号的无向图,你可以给每条边染上K ...

  7. AtCoder Grand Contest 017

    AtCoder Grand Contest 017 A - Biscuits 有\(n\)个数,问有多少个集合的数的和模\(2\)余\(P\). 随便\(dp\)一下就好了. #include< ...

  8. AtCoder题解——AtCoder Grand Contest 048——A - atcoder < S

    题目相关 题目链接 AtCoder Grand Contest 048 A 题,https://atcoder.jp/contests/agc048/tasks/agc048_a. Problem S ...

  9. Splatter Painting

    题目链接:Splatter Painting 因为距离很小. 所以,我们可以逆向操作,当前仅当这个点未被染色才去递归子节点.然后如果枚举到这个点,之前一个到过的节点还能到的距离大于当前还能到的距离就r ...

最新文章

  1. 石家庄地铁售票系统源码及截图(结对作业)
  2. Enterprise Library 3.0 安装过程
  3. walle(瓦力)部署系统的安装和简单使用
  4. MQTT协议通俗讲解
  5. java 监控usb端口插拔_如何监控某种类型的USB设备的插拔?
  6. 判断是否为ajax请求
  7. 类成员与方法访问控制从严
  8. codevs3732==洛谷 解方程P2312 解方程
  9. 检测1的个数_面部皮肤检测仪是美容院的新套路吗?
  10. 十大硬盘数据恢复软件
  11. 磁盘文件系统Fat、Fat32、NTFS、exFAT的优缺点
  12. 比风水厉害100倍的宇宙规律,你懂多少?
  13. Java课程设计答辩之感想
  14. c语言中正弦函数的定义,三角函数基本概念 | 玄数
  15. mathematics中如何计算排列组合
  16. 时寒冰 --- 一如即往的支持你
  17. 下载文件downFile
  18. 【Android智能硬件开发】【011】安卓串口转USB
  19. 5.PMAC下位机-下位机编程基础
  20. 网易云音乐API使用教程与遇到的问题

热门文章

  1. C语言及程序设计(公开课)主页
  2. 带密码的php文件管理器,PHP文件管理器Tiny File Manager账号密码修改方法
  3. 【评分卡】评分卡入门与创建原则——分箱、WOE、IV、分值分配
  4. python数据可视化之美——基础
  5. autojs之excel
  6. Kerberos与Ranger
  7. APP热更新方案(转)
  8. codec和DSP的区别
  9. Linux操作系统的设备独立性,Linux的设备管理
  10. 于typedef的用法总结