CF-60D - Savior(并查集+数论)

USACO section 3.4 Closed Fences(计算几何+叉积+二分) Closed Fences A closed fence in the plane is a set of non-crossing, connected line segments with N corners (3 i, yi}, i in (1..N). Every pair of adjacent vertices defines a side of the fence. 阅读详情

D - Savior
Time Limit:4000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

Description

Misha decided to help Pasha and Akim be friends again. He had a cunning plan — to destroy all the laughy mushrooms. He knows that the laughy mushrooms can easily burst when they laugh. Mushrooms grow on the lawns. There are a[t] mushrooms on the t-th lawn.

Misha knows that the lawns where the mushrooms grow have a unique ability. A lawn (say, i) can transfer laugh to other lawn (say, j) if there exists an integer (say, b) such, that some permutation of numbers a[i], a[j] and b is a beautiful triple (i ≠ j). A beautiful triple is such three pairwise coprime numbers x, y, z, which satisfy the following condition: x2 + y2 = z2.

Misha wants to know on which minimal number of lawns he should laugh for all the laughy mushrooms to burst.

Input

The first line contains one integer n (1 ≤ n ≤ 106) which is the number of lawns. The next line contains n integers ai which are the number of mushrooms on the i-lawn (1 ≤ ai ≤ 107). All the numbers are different.

Output

Print a single number — the minimal number of lawns on which Misha should laugh for all the mushrooms to burst.

Sample Input

Input
1
2
Output
1
Input
2
1 2
Output
2
Input
2
3 5
Output
1

思路:所有勾股数都可以表示为x^2-y^2,,2*x*y,,,x^2+y^2  枚举所有勾股数,然后把能合并的合并,最后查看有几个不同的集合就是答案。


#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int mm=1e7+9;
int root[mm],f[mm],n,num;
int look(int x)
{
  if(x^root[x])
    root[x]=look(root[x]);
  return root[x];
}
void uni(int a,int b)
{
  a=look(a);b=look(b);
  if(root[a]!=0&&root[b]!=0&&a!=b)
  {
    root[a]=b;++num;
  }
}
int gcd(int a,int b)
{ int z;
  while(a)
  {
    z=a;a=b%a;b=z;
  }
  return b;
}
int main()
{ long long x,y,z;
  while(scanf("%d",&n)!=EOF)
    { memset(root,0,sizeof(root));
      for(int i=0;i<n;++i)
        {scanf("%d",&f[i]);root[f[i]]=f[i];}
        num=0;
      for(long long i=1;i<mm;i++)
      {
        for(long long j=i+1;2*i*j<mm;j+=2)
        {
          x=j*j-i*i;y=2*i*j;z=i*i+j*j;
          if(x>mm||y>mm)break;
          if(gcd(i,j)!=1)continue;
            uni(x,y);
          if(z<mm)
            uni(x,z);
          if(z<mm)
            uni(y,z);
        }
      }
      printf("%d\n",n-num);
    }
}



研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

Win10无外网热点搭建全指南:纯局域网通信与设备互联

热点并不是只有共享上网一种用途。在很多工程与办公场景中,我们需要的是让手机、笔记本、开发板等设备临时组成一个纯内网,完成文件传输、端口调试或局域网联机,而不需要任何外网出口。Win10笔记本在不连接互联网的状态下,借助系统移动热点或netsh承载网络,完全可以创建一个无外网热点,实现设备间二层互通。其核心在于利用SoftAP建立虚拟无线接入点,并绕开或禁用ICS的NAT转发。掌握这一技术,可在会议、出差、物联网调试等场景中快速搭建临时局域网,无需额外路由器。本文详细梳理三种实现路径、操作步骤及常见故障排查,

weixin_29230773的博客 238

【数论+并查集】Walk on Graph

题目 有一张n个点m条边的无向连通图G,每条边有长度ci,有一个人在上面走 有q组询问,每组询问给出si,ti,ri,表示问你是否存在一条从si出发到ti结束长度为ri%Mod的路径 注意这里的路径长度是∑ci*2^i n,m,q<=50000,Mod<=1000000且Mod为奇数 思路 考虑把这个过程倒过来,这样每走一次就会变成 2x+w2x + w2x+w。 朴素做法是判断到某个点,值为 xxx 是否可行,考虑寻找一些性质来优化这个做法。 不难发现直接做的话是单向边,这样处理起来比较困难。

Brute♂force 370

RTX 50系显卡(5080/5090D)CUDA 12.8环境下的vLLM部署避坑与实战指南

本文为RTX 5080/5090D显卡用户提供了在CUDA 12.8环境下部署vLLM的完整实战指南。文章详细介绍了从驱动安装、CUDA 12.8环境配置、PyTorch Nightly版本精准匹配,到vLLM源码编译及常见报错排查的全过程,帮助开发者高效利用新一代硬件进行大模型推理。

gray5的博客 669

240. 食物链(并查集+数论)

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。 A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示X和Y是同类。 第二种说法是”2 X Y”,表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。 当一句话满足下列三条之一时,这句话就是假话,否则就是真话。 1)...

marcushbs的博客 557

Vmware 17保姆级教程:从零部署华为enspPro模拟器(附镜像下载+配置优化)

本文提供了一份详尽的Vmware 17部署华为eNSP Pro模拟器的保姆级教程。内容涵盖从镜像下载、虚拟机导入、网络配置到深度性能调优的全过程,并针对常见启动失败、设备卡顿等故障提供了实用的排查方案,旨在帮助网络工程师和华为认证备考者快速搭建稳定高效的实验环境。

arduino9maker的博客 636

LibTV保姆级教程:从提示词到AI视频成片全流程

AI视频生成技术正以前所未有的速度重塑内容创作行业,过去需要编剧、摄影、剪辑等多角色协作的复杂流程,如今借助AI绘画与图生视频等核心能力,一个人也能完成高质量短视频制作。理解提示词工程是掌控AI视频创作的关键,通过精准描述主体、环境、光线与运镜,可以显著提升生成画面的稳定性与专业度。而图生视频技术则让静态分镜自然流动,有效解决角色一致性与场景漂移等常见问题。这类工具已广泛应用于产品宣传、剧情短片、社交媒体内容生产等场景,大幅降低了视频创作门槛。本文以LibTV一站式AI视频创作平台为例,从核心概念到完整实操

weixin_29046035的博客 975

并查集

并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。 使用并查集时,首先会存在一组不相交的动态集合 $S = \left\{ {{S_1},{S_2}, \cdots ,{S_k}} \...

didiao7566的专栏 312

Discrete Optimization (Coursera) 学习笔记 Week 1 introduction (开个帖子)

Week 1 Introduction 这位教授Pascal Van Hentenryck 真的算是优化领域神级别的人物了吧?截一张Google scholar的图大家感受一下… 居然在Coursera上看到了他开的课:Discrete Optimization。试听了几节后,发现讲得很有激情,而且深入浅出。遂决定花暑假跟完这一门课。 这门课每周花两三个小时介绍基础概念,然后得花十几个小时写作业(coding)… 一开始以为Coursera上的课的作业应该不会太难,然后第一次作业(knapsack)我就被

ZJ_11701的博客 657

pku 1681 Painter's Problem(高斯消元)

Painter's Problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3462   Accepted: 1710 Description There is a square wall which is made of n*n small square br

nealgavin的专栏 1951

ENSP内使用wireshark进行抓包,并且解析icmp报文

前四位:54 89 98 e8 20 38 为ip报文包的mac地址也就是物理地址。一开始进行抓包是没有icmp报文的,需要我们在ensp中使用pc1请求联通pc9。协议编号后分别为:ip版本、ip首部报文长度、服务类型、ip报文总长度。最后为校验和 、源ip地址、目的ip、从08 00开始为真正的数据。我们需要实验的端口为:0/0/4,也就是抓包第三个交换机内的报文。其中显示的icmp报文就是我们需要解析的ip报文。源mac地址后跟着的就是协议编号: 08 00。根据ip报文包的结构我们进行解析。

2301_81713278的博客 2139

等保测评-瀚高数据库

一般适用于等保测评

m0_54146694的博客 1634

pku 1753 Flip Game(高斯消元+枚举)

Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20199   Accepted: 8752 Description Flip game is played on a rectangular 4x4 field with two-sided piec

nealgavin的专栏 1660

Orin 调试GMSL camera 96712手册重点

96712基础理解

乐于分享 9198

hdu 1250 Hat's Fibonacci

Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3726    Accepted Submission(s): 1252 Problem Description A Fibonacci se

nealgavin的专栏 1251

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

nefu702 The minimum square sum(数论)

The minimum square sum Time Limit 1000ms Memory Limit 65536K description   Given a prime p (p8),you are to find min{x2+y2},where x and y belongs t

nealgavin的专栏 1244

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CF-50E-Square Equation Roots(数论)

E - Square Equation Roots Time Limit:5000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 50E Description A schoolboy Petya studies sq

nealgavin的专栏 1107

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu 4357 String change(推理题,4级)

String change Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 802    Accepted Submission(s): 370 Problem Description In this proble

nealgavin的专栏 1010

USACO section 4.1 Beef McNuggets(数论+背包)

Beef McNuggets Hubert Chen Farmer Brown's cows are up in arms, having heard that McDonalds is considering the introduction of a new product: Beef McNuggets. The cows are trying to find any possibl

nealgavin的专栏 988

LS 38 Geometric sum(数论+二分快速幂)

Geometric sum Compute (a+a2+…an)modm. Input Three integers a,n,m. (1≤a,n,m≤1018) Output The only integer denotes the result. Sample input 2 2 1000000000 Sample output 6

nealgavin的专栏 979

hdu 4465 Candy(概率公式+极大乘极小,4级)

Candy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1016    Accepted Submission(s): 449 Special Judge Problem Description LazyChil

nealgavin的专栏 954

hdu 1042 N!

N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33314    Accepted Submission(s): 9234 Problem Description                Given an in

nealgavin的专栏 926

CF 17D - Notepad(数论取模+欧拉函数)

D - Notepad Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 17D Description Nick is attracted by everything unconventio

nealgavin的专栏 900

素数判断(数论)

素数判定 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 8   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← →

nealgavin的专栏 895

hdu 3117 Fibonacci Numbers

Fibonacci Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 993    Accepted Submission(s): 424 Problem Description The Fibonacci

nealgavin的专栏 845
上一篇: hdu 4502 吉哥系列故事——临时工计划(DP)
下一篇: hdu 4512 吉哥系列故事——完美队形I(最长公共上升序列)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值