题目链接:点击查看

题目大意:给出 n 个数,输出两两绝对值之差相乘对 m 取模后的答案

题目分析:读完题后乍一看感觉 n 很大,不能 n * n 暴力解决,但是发现 m 非常小,因为有了 m 的限制,而操作时只涉及了加,减以及乘法运算,所以每个数字的范围也被限制到了 [ 0 , m ) 之间,并且不难发现,如果 n 个数中取模后存在两个数 a[ i ] = a[ j ] ,那么 abs( a[ i ] - a[ j ] ) % m = 0 ,所以最终的答案乘以 0 也变成了 0,再根据鸽巢原理,就可以下结论了:

  1. 当 n > m 时,此时至少存在一个 x ∈ [ 0 , m ),满足 x 的出现次数大于等于 2
  2. 当 n <= m 时,n * n 暴力计算答案就好了,时间复杂度为 O( m *m )

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e3+100;int n,m;LL a[N];int main()
{
#ifndef ONLINE_JUDGE
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);
#endif
//    ios::sync_with_stdio(false);scanf("%d%d",&n,&m);if(n>m){puts("0");return 0;}for(int i=1;i<=n;i++)scanf("%d",a+i);LL ans=1;for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)ans=ans*llabs(a[i]-a[j])%m;printf("%lld\n",ans);return 0;
}

CodeForces - 1305C Kuroni and Impossible Calculation(鸽巢原理)相关推荐

  1. Kuroni and Impossible Calculation CodeForces - 1305C(鸽巢原理)

    To become the king of Codeforces, Kuroni has to solve the following problem. He is given n numbers a ...

  2. CodeForces - 1305 C. Kuroni and Impossible Calculat(鸽巢原理)

    传送门 题意: 给一个长度为n的数组 求数组中所有两两差的绝对值的乘积,然后%m 思路: 看一下那个要求的东西,很容易发现是鸽巢原理的整除问题 因为m很小,而且最后要模m 鸽巢原理整除问题:任意n+1 ...

  3. CodeForces - 1501C Going Home(鸽巢原理+暴力)

    题目链接:点击查看 题目大意:给出 nnn 个数,问是否存在四个数满足:a+b=c+da+b=c+da+b=c+d 题目分析:官方题解是直接 O(n2)O(n^2)O(n2) 暴力,因为每个数的范围是 ...

  4. c语言鸽巢原理,Codeforces 1188C DP 鸽巢原理

    题意:定义一个序列的beauty值为序列中元素之差绝对值的最小值,现在给你一个数组,问所有长度为k的子序列的beauty值的和是多少? 思路:(官方题解)我们先解决这个问题的子问题:我们可以求出bea ...

  5. 兰州大学第一届『飞马杯』程序设计竞赛 - ★★平形四边行★★(鸽巢原理+暴力)

    题目链接:点击查看 题目大意:二维平面坐标系上给出 nnn 个点,现在需要求出四个点,满足四个点可以组成可退化的平行四边形 题目分析:因为坐标的范围很小,所以瞬间想到了上周刷到的一道题目的模型: Co ...

  6. 鸽巢原理(抽屉原理)的详解

    抽屉原理 百科名片 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果.这一现象就是我们所说的"抽屉原理". 抽屉原理的一般含义为: ...

  7. 【组合数学】鸽巢原理 ( 鸽巢原理简单形式示例 4、5 )

    文章目录 一.鸽巢原理简单形式示例 4 二.鸽巢原理简单形式示例 5 一.鸽巢原理简单形式示例 4 假设有 333 个 777 位二进制数 , A:a1a2a3a4a5a6a7A : a_1a_2a_ ...

  8. 【组合数学】鸽巢原理 ( 鸽巢原理简单形式 | 鸽巢原理简单形式示例 1、2、3 )

    文章目录 一.鸽巢原理简单形式 二.鸽巢原理简单形式示例 1 三.鸽巢原理简单形式示例 2 四.鸽巢原理简单形式示例 3 一.鸽巢原理简单形式 鸽巢原理 : 将 n+1n + 1n+1 个物体 放到 ...

  9. 算法之组合数学及其算法篇(二) ----- 鸽巢原理

    鸽巢原理 前言 鸽巢原理 运用1 运用二 运用三 鸽巢原理的推广 推论 运用一 运用二 鸽巢原理在几何上的作用 鸽巢原理对于数学的证明 前言 鸽巢原理又称抽屉原理或鞋盒原理,这个原理最早是由狄利克雷( ...

最新文章

  1. IOS8 PUSH解决方法
  2. 085_Document对象
  3. 以色列全国路网遭到了网络攻击 造成交通拥堵
  4. ITK:在图像区域上运行图像过滤器
  5. 合集 | 我在传统行业做数字化转型
  6. 暑假集训-个人赛第六场
  7. php中heredoc的使用方法
  8. 数据结构摧毁线性表用c语言,[简述]数据结构-线性表(c语言实现)
  9. visual studio 工具的使用
  10. rest sso 和_SSO企业单点登录系统——CAS REST认证方式
  11. 短时傅里叶变换原理解
  12. bledner做MMD心得(二)
  13. Android客户端如何使用cookie
  14. 一万年太久,只争朝夕,男儿有泪不轻弹,只是未到伤心处!!!!!!
  15. 如何设置无线路由器提高迅雷下载速度
  16. Bugku 分析 特殊后门(wireshark流量包分析)
  17. MATLAB 绘制论文图片格式设置万能代码模板
  18. 【数据结构与算法】动态规划-leetcode.1884 鸡蛋掉落两枚鸡蛋
  19. swsyth_kp_spxz_khxz_js
  20. ACM各OJ网站简介

热门文章

  1. kubernetes 容器内获取Pod信息(包括:宿主主机IP)
  2. python中使用函数的优点,对于python类使用“get函数”有什么好处?
  3. 认证(登录)功能需求分析
  4. MySQL语法规范介绍
  5. MySQL高级 orderby 优化
  6. Nginx的Gzip和sendfile的共存问题
  7. Single System Image的理解
  8. 手写自己的MyBatis框架-SqlSession
  9. SpringMVC的请求-文件上传-文件上传的原理
  10. weblogic获取应用目录路径