根据抽屉原理显然m>=(n-K)

  于是在[n-K,max(a1..an)+1]的范围中枚举m

  考虑K=0的做法...

  如果a[i]≡a[j](mod m),则有m|(a[i]-a[j]),只要O(n²)记录下所有a[i]-a[j],找在max范围内m的倍数是否出现过就行了。根据调和级数复杂度为O(n²+max log max)

  如果K>0

  我们记录下m的倍数出现过的次数cnt,如果cnt>k*(k+1)/2说明至少有k+1个数模m同余,显然不可行

  如果满足cnt<=k*(k+1)/2,我们求出a[i]%m用数组记录,每种只能保留一个,算一下超过的有多少个,若<=k就可行

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#include<map>
#define ll long long
using namespace std;
const int maxn=,inf=1e9;
int n,K,mx;
int a[maxn],v[maxn*],vis[maxn*];
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int main()
{
read(n);read(K);
if(n+<=K)return puts(""),;
for(int i=;i<=n;i++)read(a[i]),mx=max(mx,a[i]);
sort(a+,a++n);
for(int i=;i<n;i++)
for(int j=i+;j<=n;j++)
v[a[j]-a[i]]++;
for(int i=n-K;i<=mx+;i++)
{
int cnt=;
for(int j=;i*j<=mx;j++)
cnt+=v[i*j];
if(cnt>(K*(K+)>>))continue;
cnt=;
for(int j=;j<=n;j++)
{
int x=a[j]%i;
if(vis[x]!=i)vis[x]=i;
else cnt++;
}
if(cnt<=K)return printf("%d",i),;
}
return ;
}

51nod 1217 Minimum Modular(数论+暴力)的更多相关文章

  1. 51nod 1217 Minimum Modular

    N个不同的数a[1],a[2]...a[n],你可以从中去掉K个数,并且找到一个正整数M,使得剩下的N - K个数,Mod M的结果各不相同,求M的最小值. Input 第1行:2个数N, K,中间用 ...

  2. codeforces 303C. Minimum Modular(数论+暴力+剪枝+贪心)

    You have been given n distinct integers a1, a2, ..., an. You can remove at most k of them. Find the ...

  3. CF 303C——Minimum Modular——————【剪枝】

    Minimum Modular time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  4. 数论/暴力 Codeforces Round #305 (Div. 2) C. Mike and Frog

    题目传送门 /* 数论/暴力:找出第一次到a1,a2的次数,再找到完整周期p1,p2,然后以2*m为范围 t1,t2为各自起点开始“赛跑”,谁落后谁加一个周期,等到t1 == t2结束 详细解释:ht ...

  5. uva 10560 - Minimum Weight(数论)

    题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少须要多少个不同重量的砝码才干称量1~n德重量,给出所选的砝码重量,而且给出k,表示有k个重量须要用上述所选的砝 ...

  6. Gym 100917C Constant Ratio 数论+暴力

    题目: Description standard input/outputStatements Given an integer n, find out number of ways to repre ...

  7. 51nod 1414 冰雕 思路:暴力模拟题

    题意是现在有n个雕像把一个圆等分了,每一个雕像有一个吸引力. 叫你不移动雕像只去掉雕像让剩下的雕像还能等分这个圆,求剩下的雕像的吸引力之和的最大值. 显然去掉后剩下雕像的间隔应该是n的因子,因为这样才 ...

  8. 51nod 1483 化学变换 | 二进制 暴力

    51nod 1483 化学变换 题面 给出n个整数(n <= 1e5,每个数 <= 1e5),对每个数都可以进行多次操作,操作有两种:乘二/整除以二. 问最少经过多少次操作能使所有数相等. ...

  9. 51nod 1421 最大MOD值 | 暴力

    题面 有一个a数组,里面有n个整数.现在要从中找到两个数字(可以是同一个) ai,aj ,使得 ai mod aj 最大并且 ai ≥ aj. Input 单组测试数据. 第一行包含一个整数n,表示数 ...

随机推荐

  1. OSG-漫游

    本文转至http://www.cnblogs.com/shapherd/archive/2010/08/10/osg.html 作者写的比较好,再次收藏,希望更多的人可以看到这个文章 互联网是是一个相 ...

  2. TPO-14 C2 Prepare for a career in journalism

    TPO-14 C2 Prepare for a career in journalism 第 1 段 1.Listen to a conversation between a student and ...

  3. Spring 配置请求过滤器,编码格式设为UTF-8,避免中文乱码

    <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name>springUtf8Encoding</fi ...

  4. labview--http协议数据交互

    最近接了一个项目,需求是要将采集到的数据,以以下要求上报,并且提供接口供上层系统下发指令. 采用restful的http协议进行交互: 输入输出参数皆为json体. 响应包含三部分: Code:业务码 ...

  5. 【WXS数据类型】Array

    属性: 名称 值类型 说明 [Array].constructor [String] 返回值为“Array”,表示类型的结构字符串 [Array].length [Number] 返回数组长度 方法: ...

  6. 【转】Unity 使用xLua遇到的坑

    在我们使用xLua作为Unity中lua集成的解决方案时,遇到了一个问题,就是当我们使用在lua中把UI中的某个控件绑定相应的事件(如按钮的onClick事件),xLua绑定这个事件是用委托实现的,具 ...

  7. Ubuntu—安装并运行sublime

    step1 到官网看看 https://www.sublimetext.com/3 step2 根据版本选择,我的是32位的 step3 ubuntu终端安装 (1)切换目录 -$ cd /opt  ...

  8. 【递归入门】组合+判断素数:dfs(递归)

    题目描述 已知 n 个整数b1,b2,…,bn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 3,7,12, ...

  9. 开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim

    AirSim 的官方 Github: https://github.com/Microsoft/AirSim 对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把 ...

  10. 软件功能说明书——Thunder团队

    爱阅APP功能说明书 一.引言 相信大家都使用过电子书阅读器,相对于纸质版书籍电子书APP做到了环保.易存储.便携.因此我们Thunder团队开发了——爱阅APP,以下内容是Alpha版的功能说明书. ...