• 3284 疯狂的黄大神


    3284 疯狂的黄大神

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
     
     
    题目描述 Description

    黄大神十分喜欢吃馒头。兴奋之下他一下子买了N 个馒头请所有认识他的人吃。

    但是黄大神不喜欢白色,喜欢红色、黄色、绿色等鲜艳的颜色。于是他把所有白色的馒头排成一列。然后进行M 次染色操作。每个染色操作都是用一个神奇的刷子把连续的多个馒头染成特定的某种颜色。一个馒头最终的颜色是最后一次染它的

    颜色。如果一个馒头没有被染过色,那么它的颜色就是白色。现在CQF已经定好了染色计划:在第i次染色操作中,把第(i × p + q)mod N + 1个馒头和第(i × q + p)mod N + 1个馒头之间的馒头染成颜色i,其中p, q是特定的两个正整数。他想立即知道最后每个馒头的颜色。你能帮他吗?

    输入描述 Input Description

    第一行四个正整数N ,M ,p,q。

    输出描述 Output Description

    一共输出N 行,第i行表示第i个馒头的最终颜色(如果最终颜色是白色就输出0)。

    样例输入 Sample Input

    4 3 2 4

    样例输出 Sample Output

    2

    2

    3

    0

    数据范围及提示 Data Size & Hint

    在20%的数据中,1 ≤ N ≤ 1000,1 ≤ M ≤ 10000

    在40%的数据中,1 ≤ N ≤ 10000,1 ≤ M ≤ 100000

    在60%的数据中,1 ≤ N ≤ 50000,1 ≤ M ≤ 500000

    在80%的数据中,1 ≤ N ≤ 300000,1 ≤ M ≤ 3000000

    在100%的数据中,1 ≤ N ≤ 1000000,1 ≤ M ≤ 10000000

    保证所以输入数据中1 ≤ M ∗ p + q, M ∗ q + p ≤ 231 − 1。

    真tmd并查集水题

    代码:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define N 10000010
    typedef long long ll;
    int fa[N],ans[N];
    ll n,m,p,q;
    int find(int x){
        //return fa[x]==x?x:fa[x]=find(fa[x]);//
        int r=x,pre;
        while(r!=fa[r])  r=fa[r];
        while(x!=r){
            pre=fa[x];fa[x]=r;x=pre;
        }
        return r;
    }
    int main()
    {
        //cin>>n>>m>>p>>q;
        scanf("%lld%lld%lld%lld",&n,&m,&p,&q);
        for(int i=1;i<=n+2;i++) fa[i]=i;
        for(int i=m;i>=1;i--){
            ll l=((ll)i*p+q)%n+1;
            ll r=((ll)i*q+p)%n+1;
            if(l>r) swap(l,r);
            for(int j=find(l);j<=r;j=find(j)){
                ans[j]=i;fa[j]=j+1;
            }    
        }
        for(int i=1;i<=n;i++){
            //cout<<ans[i]<<endl;
            printf("%d
    ",ans[i]);
        }
        return 0;
    }
  • 相关阅读:
    【题解】P3796【模板】AC自动机(加强版)
    【模板】P3806点分治1
    【题解】P2602[JZOI2010]数字计数
    【题解】P2444 病毒
    【题解】[P3557 POI2013]GRA-Tower Defense Game
    【题解】DZY Loves Chinese
    【题解】[Ghd]
    【题解】CF264B Good Sequences
    【题解】P3162CQOI2012组装
    【题解】P2279消防局的设立
  • 原文地址:https://www.cnblogs.com/shenben/p/5538904.html
Copyright © 2020-2023  润新知