首页 > 编程语言 >2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛

2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛

时间:2022-10-25 18:01:39浏览次数:134  
标签:10 竞赛 int long 程序设计 define

比赛链接

2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛

H.Cute Rabbit

给出 \(n\) 个数,求最多选多少个数使得,所有未选的数对所有选的数的模数相等

解题思路

数论,gcd,lcm

  • 时间复杂度:\(O(n)\)

代码

// Problem: Cute Rabbit
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/44727/H
// Memory Limit: 1048576 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

// %%%Skyqwq
#include <bits/stdc++.h>
 
//#define int long long
#define help {cin.tie(NULL); cout.tie(NULL);}
#define pb push_back
#define fi first
#define se second
#define mkp make_pair
using namespace std;
 
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
 
template <typename T> bool chkMax(T &x, T y) { return (y > x) ? x = y, 1 : 0; }
template <typename T> bool chkMin(T &x, T y) { return (y < x) ? x = y, 1 : 0; }
 
template <typename T> void inline read(T &x) {
    int f = 1; x = 0; char s = getchar();
    while (s < '0' || s > '9') { if (s == '-') f = -1; s = getchar(); }
    while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();
    x *= f;
}

const int N=1e5+5,M=1e6+5;
int n,a[N],cnt[M];
int pre[N],suf[N];
int LCM(int x,int y)
{
	return x/__gcd(x,y)*y;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]),cnt[a[i]]++;
    sort(a+1,a+1+n);
    if(cnt[a[1]]==n||cnt[a[1]]==1)
    {
    	printf("%d",n-1);
    	return 0;
    }
    int res=n-cnt[a[1]];
    pre[1]=a[1];
    int tot=2;
    while(tot<=n&&LCM(pre[tot-1],a[tot])<=a[n])pre[tot]=LCM(pre[tot-1],a[tot]),tot++;
    suf[n-1]=a[n]-a[n-1];
    for(int i=n-2;i>=1;i--)suf[i]=__gcd(suf[i+1],a[i+1]-a[i]);
    for(int i=2;i<=tot&&i<=n;i++)
    	if(suf[i]%pre[i-1]==0)
    		res=max(res,i-1);
    printf("%d",res);
    return 0;
}

标签:10,竞赛,int,long,程序设计,define
From: https://www.cnblogs.com/zyyun/p/16825744.html

相关文章

  • 2022年华中科技大学程序设计新生赛
    背景:之前练的一场忘了写题解,补一下,赛时过了6题A解析主要考察的是对于期望dp的理解其实也没什么好说的,一般写过期望dp的还是很容易想到这里就把官方的贴上来了补充......
  • IPW65R110CFDA英飞凌车规MOS管\原装现货ASEMI代理
    编辑:llIPW65R110CFDA英飞凌车规MOS管\原装现货ASEMI代理型号:IPW65R110CFDA品牌:ASEMI封装:TO-247最大漏源电流:99.6A漏源击穿电压:650VRDS(ON)Max:0.099Ω引脚数量:3特性:车规级MOS管......
  • IPW65R110CFDA英飞凌车规MOS管\原装现货ASEMI代理
    编辑:llIPW65R110CFDA英飞凌车规MOS管\原装现货ASEMI代理型号:IPW65R110CFDA品牌:ASEMI封装:TO-247最大漏源电流:99.6A漏源击穿电压:650VRDS(ON)Max:0.099Ω引脚数量:3特性:......
  • Python制作自动填写脚本,100%准确率
    本次案例代码实现思路:本次案例代码实现思路:打开考试网站selenium-->浏览器驱动-->操作浏览器<模拟人的行为做操作浏览器>获取答案获取答案网站链接获取问题......
  • 110-注解JSONField、DateTimeFormat、JsonFormat、JsonProperty
    JSONField注解在属性上,作用为:属性的名称与转为toString的名称不一样时,使用该注解。例如:@JSONField(name="user_id")privateStringuserId;当userId="a";使用:JSON.......
  • 2022-10-25 uniapp项目运行至小程序后出现问题:1、点击事件传递的值为undefined;2:v-for
    前言,uniapp编译到微信后,代码变得诡异起来。一些效果比如题目所言,效果和h5端的不一样(h5端正常,小程序端异常)问题1:原因:key值不明确,我绑定的是数组的index,心想这都不行?然后把......
  • Luogu P4171 [JSOI2010]满汉全席
    题目链接:​​传送门​​2-sat板子题注意输入的时候可不要以为w和h后面数字只有一位*/#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#includ......
  • CF1092F Tree with Maximum Cost
    题目链接:​​传送门​​是​​这个题​​​的一个变形就是最小值改成最大值懒了直接改了改当时的代码当时的题解里也有解析#include<iostream>#include<cstdio>#inclu......
  • CF1062E Company
    题目链接:​​传送门​​翻译那边有要知道树上一个区间的公共lca是区间dfs序的最小值和最大值对应的两个点的lca证明可以去网上找删掉dfs最大或最小的点然后再通过一次d......
  • CF1000E We Need More Bosses
    题目链接:​​传送门​​一个无向图中求找到两个点使这两个点之间必须经过的边最多,求最多要经过的边缩完点树的直径E还能这么良心*/#include<iostream>#include<cstdio>......