【题目链接】 http://acm.timus.ru/problem.aspx?space=1&num=1682

【题目大意】

  给出k,从1开始不断地加一并把这个数写在黑板上,如果写上的数字和之前的数字满足
  (a+b*b)%k=0或者(b+a*a)%k=0就在他们之间连一条线,如果黑板上出现环就结束,问能写几个数

【题解】

  我们发现写到2k-1的时候,就一定会产生一个环,所以我们只要枚举数字
  往满足要求的地方连边,判断是否出现环即可

【代码】

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
typedef long long LL;
const int N=300010;
int f[N],n,pre[N];
vector<int> G[N];
int sf(int x){return f[x]==x?x:f[x]=sf(f[x]);}
void solve(){for(int i=1;i<=3*n;i++)pre[i]=0,f[i]=i,G[i].clear();G[n-1].push_back(1);for(LL i=2;i<=3*n;i++){LL t=n-(i*i)%n;while(t<i){if(t){if(sf(t)==sf(i)){printf("%lld\n",i);return;}f[f[t]]=f[i]; pre[t]=i;}t+=n;}t=i%n;for(int j=0;j<G[t].size();j++){int p=G[t][j];if(pre[p]==i)continue;if(sf(p)==sf(i)){printf("%lld\n",i);return;}f[f[p]]=f[i];}G[n-(i*i)%n].push_back(i);}
}
int main(){while(~scanf("%d",&n))solve();return 0;
}

转载于:https://www.cnblogs.com/forever97/p/ural1682.html

URAL 1682 Crazy Professor (并查集)相关推荐

  1. URAL 1671 Anansi's Cobweb (并查集)

    一道思维题. 传送门:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20482 题意: 有一张无向图.给Q次删边操作,问每次操 ...

  2. Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..

    题意: 给出一个无向图..然后不断的删边..问每次删边后..整个图是由几个联通块组成的.... 题解: 以前做过一个题..是CF上面的...是不断的删边..并询问某两点的最短路..当时的方法是倒过来. ...

  3. 【分组并查集讲解】A Bug‘s Life(例题)

    举例: 我们开一个两倍大小的并查集.例如,假如我们要维护4个元素的并查集,我们改为开8个单位的空间: 我们用14维护朋友关系(就这道题而言,是指关在同一个监狱的狱友),用58维护敌人关系(这道题里是指 ...

  4. Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛

    题意: n个学生要组成一个小组参加会议(可以不参加), 1.对于每两个朋友(x ,y),如果他们俩都参加会议,该小组的友好价值将会增加 1:如果其中只有一位参加会议,则该组的友好价值将降低 1. 3. ...

  5. Just for fun----zjfc 并查集操作

    题目描述 When I boring , I'm crazy...So I design a BT game just for fun...It's easy... 输入描述 First line i ...

  6. A Bug‘s Life POJ 2492 加权并查集

    A Bug's Life POJ 2492 加权并查集 传送门:http://poj.org/problem?id=2492 Description Background Professor Hopp ...

  7. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

  8. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  9. HDU 2586 How far away ? LCA ---tanjar+并查集 离线算法

    tanjar算法离线求LCA的思想主要是利用并查集的思想. 求距离的话就是d[start[i]]+end[en[i]]-2*d[lca[i]]; 首先从根节点dfs,在深度遍历的回溯的过程中不断的更新 ...

最新文章

  1. linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)
  2. sqlite 查询 支持多用户同时_开源时代的后端程序员必须要了解的一个数据库SQLite...
  3. Linux服务器---网络配置
  4. SSO模型及单点登录SSO技术选型
  5. Chrome浏览器插件安装位置
  6. zigbee cc2530 灌电流 拉电流 上拉电阻
  7. Nokia落寞身影下 三星成为全球最大手机厂商
  8. oracle复制一个表的结构图,Oracle复制表结构
  9. 利用dos进入mysql数据库操作数据
  10. AE插件Stardust for mac(最强粒子特效)
  11. Android自定义选座,Android实现电影院选座效果
  12. linux系统网桥管理工具brctl 安装及使用
  13. 软件工程标准与软件文档
  14. 2022-2027年中国暖气片行业市场全景评估及发展战略规划报告
  15. 当我在做技术管理时,我在做什么?
  16. 使用Fiddler破解钉钉回放视频不能下载
  17. c++求一个数的因子
  18. python游戏功能_python 游戏(龙的国度)
  19. SpringCloud+SpringCloudAlibaba
  20. 什么是 SRS 呢?在我们大部分的音频播放器里都内欠有这种音效。

热门文章

  1. sql实现like多个值的查询
  2. 集合初始化时,指定集合初始值大小
  3. MVC、 MVP、 MVVM之间的区别
  4. java局部刷新session过期_Ajax局部页面刷新和History API结合的陷阱
  5. 七月时忙碌而充实的_如何减少忙碌而更有效
  6. hashmap 从头到尾_如何从头到尾设计一个简单的复古徽标
  7. 脑裂问题解决方案_从解决方案到问题
  8. 给3月要跳槽的前端提个醒!不了解微前端就别去面试了,不然……
  9. 我真的哭了,哭过后呢(-)
  10. [Docker]Docker快速上手学习笔记