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\n",ans[i]);
    }
    return 0;
}
时间: 2024-11-05 21:44:30

3284 疯狂的黄大神的相关文章

跟随前端大神的脚步

1. 大神 寻找Github.微博.知乎等技术社区上比较活跃.影响力大的圈内大神,供大家膜拜! 视野所限,未必全面,欢迎大家推荐.自荐. 排名不分先后,序号只为标记方便. 提供信息只为学习交流之用,如有冒犯,请见谅:如果涉及隐私或不愿公开内容,请联系我. 1.1 国际 Chris Coyier Codepen创始人,css-tricks站长. 联系方式: CodePen. Dribbble. Twitter. GitHub. Instagram Sara Soueidan 2015 net aw

为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?

引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D8级的前端大神黄轶,当然也是我推崇的行业偶像之一. 在这里既然提到了Vue这门渐进式的前端框架,我就不得不感慨一下,最近两年,Vue.js在国内的发展可谓是如日中天,红透大江南北(当然功劳也少不了尤雨溪前段时间在上海,北京的演讲,为之宣传布道). 光我从掘金,简书,GitHub等平台上看到的相关文章或个人项目

每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享

本文来源于caoz梦呓公众号高并发专辑,以图形化.松耦合的方式,对互联网高并发问题做了详细解读与分析,"技术在短期内被高估,而在长期中又被低估",而不同的场景和人员成本又导致了巨头的方案可能并不适合创业公司,那么如何保证高并发问题不成为创业路上的拦路虎,是每一个全栈工程师.资深系统工程师.有理想的程序员必备的技能,希望本文助您寻找属于自己的"成金之路",发亮发光. 目录: 场景及解决方法解读 认识负载 数据跟踪 脑图.caoz大神公众号分享 参考资料 秉承知其然及其

前端大神

1. 大神 寻找Github.微博.知乎等技术社区上比较活跃.影响力大的圈内大神,供大家膜拜! 视野所限,未必全面,欢迎大家推荐.自荐. 排名不分先后,序号只为标记方便. 提供信息只为学习交流之用,如有冒犯,请见谅:如果涉及隐私或不愿公开内容,请联系我. 1.1 国际 Chris Coyier Codepen创始人,css-tricks站长. 联系方式: CodePen. Dribbble. Twitter. GitHub. Instagram Sara Soueidan 2015 net aw

某大神C#框架后台发送信息的查找及破解

最近在博客园瞎逛的时候,发现了某个大神发布的一个c#框架,一看框架,叫牛逼框架,嗯,装B效果太好了,界面很炫,虽然有很多的组件还是不怎么完善,但是,已经可以初步运用于项目了. 先来看看界面:   在进行测试的时候,用浏览器进行测试的时候,发现一个问题,就是该程序会主动向后台发送一些信息.信息如下: 1.http://www.nfine.cn:8099/NFineWatch/signalr/hubs  2.http://www.nfine.cn:8099/NFineWatch/signalr/ne

python 抓取搜狗微信出现的问题,求大神解决

爬取到的data不是想要获取文章页面的源码,而是跳转到验证码的页面的源码.我网上查了一下是由于访问过于频繁导致的,我也加了time.sleep和改了请求头但还是显示不了,求大神支招,除了识别验证码的方式还能怎么做?? import re import urllib.request import time import urllib.error headers = {'User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/2

算法大神之路----排序(冒泡排序法)

冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满足关系为止. 冒泡排序法分析 冒泡排序法平均情况下,需要比较(n-1)/2次,时间复杂度为O(n2),最好的情况只需要扫描一次,不用操作,即作n-1次比较,时间复杂度为O(n). 由于冒泡排序为相邻两

聊聊成为大神路上的过程(决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度,要多看别人的代码)

每个人都在成为大神的路上,只不过有的人在走,而有的人在跑. 写在前面的话 在开始正文之前我先跟大家分享一个我身边的例子.我有两个朋友,A和B.B从高一开始打dota,A从高二开始,到高中毕业的时候,A已经是一个 2100分的大神级别的人物,而B只有1200分而已.为什么A打的时间比B短,而水平却比B高呢?是天赋?是智商?似乎都不是. 我对两个人还是比较了解的,虽然同样是打dota,但是A和B之间有着很大差别的.A除了像B一样打dota之外,会看一些成名已久的大神的教学视 频,会看自己打dota的

【心灵鸡汤】大神,我有个问题,帮我看看

提前先申明今天的话题不是为了责备或者责怪,如果你非要这么理解我也没有办法 今天的话题就由下面这张图引出来,以下是一个找人帮忙解决问题的描述 最近这段时间经常遇到类似这样的寻求帮助的. 我说一下我看到这样的寻求帮助的对话之后内心的变化过程 认真读每一句话 从描述找遇到的问题 内心狂躁 心中一万个草泥马在奔腾 一般任何人只要找我问问题,我都会尽量尽我所能去解决,如果真真解决不了,当然也只能抱歉,因为我个人能力不够,仍然需要学习 那么为什么我内心会狂躁 因为我看了半天没读懂你到底要问什么,你的困难在哪