zoukankan      html  css  js  c++  java
  • 《Twinkle Twinkle Little Star》

    这题一开始没注意到d的范围,所以没做出来。

    这里我们可以想到的是,我们对询问反向涂色,那么对于已经涂过的点的颜色就是最终颜色,那么就减少了很多重复的不必要操作。

    然后因为d最大只有10,所以我们维护每个点已经涂到过的最远距离之后,暴搜染色的复杂度就最大为10 * m左右。(即d从0开始一直+1)

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef pair<int,int> pii;
    const int N = 1e5 + 5;
    const int M = 5e5 + 5;
    const LL Mod = 1e9 + 7;
    #define pi acos(-1)
    #define INF 1e18 + 5
    #define dbg(ax) cout << "now this num is " << ax << endl;
    namespace FASTIO{
        inline LL read(){
            LL x = 0,f = 1;char c = getchar();
            while(c < '0' || c > '9'){if(c == '-') f = -1;c = getchar();}
            while(c >= '0' && c <= '9'){x = (x<<1)+(x<<3)+(c^48);c = getchar();}
            return x*f;
        }
    }
    using namespace FASTIO;
    
    int n,m,ans[N],mx[N];
    vector<int> G[N];
    struct Node{
        int v,d,c;
    }p[N];
    vector<int> vec[N];
    void dfs(int u,int fa,int d,int c) {
        if(d == -1 || mx[u] >= d) return ;
        if(ans[u] == -1) ans[u] = c;
        mx[u] = d;
        for(auto v : G[u]) {
            if(v == fa) continue;
            dfs(v,u,d - 1,c);
        }
    }
    int main()
    {
        n = read(),m = read();
        while(m--) {
            int x,y;x = read(),y = read();
            G[x].push_back(y);
            G[y].push_back(x);
        }
        int q;q = read();
        for(int i = 1;i <= q;++i) p[i].v = read(),p[i].d = read(),p[i].c = read();
        for(int i = 1;i <= n;++i) mx[i] = -1,ans[i] = -1;
        for(int i = q;i >= 1;--i) {
            if(p[i].d <= mx[p[i].v]) continue;
            dfs(p[i].v,0,p[i].d,p[i].c);
        }
        for(int i = 1;i <= n;++i) if(ans[i] == -1) ans[i] = 0;
        for(int i = 1;i <= n;++i) printf("%d
    ",ans[i]);
        system("pause");
        return 0;
    }
    View Code
  • 相关阅读:
    python--将jenkins配置的任务导出到Excel
    python--终端工具之subprocess
    jquery-触底加载无限滚动
    python-比较字典value的最大值
    Linux-查看cpu核数和个数、查看内存的命令
    python读取本地正在运行的docker容器
    关于get 和post 方法的比较
    git相关的一篇不错的文章
    Java 函数调用是传值还是传引用? 从字节码角度来看看!
    Unity3D移动平台动态读取外部文件全解析
  • 原文地址:https://www.cnblogs.com/zwjzwj/p/14651453.html
Copyright © 2011-2022 走看看