CodeForces - 1305C Kuroni and Impossible Calculation(鸽巢原理)
题目链接:点击查看
题目大意:给出 n 个数,输出两两绝对值之差相乘对 m 取模后的答案
题目分析:读完题后乍一看感觉 n 很大,不能 n * n 暴力解决,但是发现 m 非常小,因为有了 m 的限制,而操作时只涉及了加,减以及乘法运算,所以每个数字的范围也被限制到了 [ 0 , m ) 之间,并且不难发现,如果 n 个数中取模后存在两个数 a[ i ] = a[ j ] ,那么 abs( a[ i ] - a[ j ] ) % m = 0 ,所以最终的答案乘以 0 也变成了 0,再根据鸽巢原理,就可以下结论了:
- 当 n > m 时,此时至少存在一个 x ∈ [ 0 , m ),满足 x 的出现次数大于等于 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(鸽巢原理)相关推荐
- 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 ...
- CodeForces - 1305 C. Kuroni and Impossible Calculat(鸽巢原理)
传送门 题意: 给一个长度为n的数组 求数组中所有两两差的绝对值的乘积,然后%m 思路: 看一下那个要求的东西,很容易发现是鸽巢原理的整除问题 因为m很小,而且最后要模m 鸽巢原理整除问题:任意n+1 ...
- CodeForces - 1501C Going Home(鸽巢原理+暴力)
题目链接:点击查看 题目大意:给出 nnn 个数,问是否存在四个数满足:a+b=c+da+b=c+da+b=c+d 题目分析:官方题解是直接 O(n2)O(n^2)O(n2) 暴力,因为每个数的范围是 ...
- c语言鸽巢原理,Codeforces 1188C DP 鸽巢原理
题意:定义一个序列的beauty值为序列中元素之差绝对值的最小值,现在给你一个数组,问所有长度为k的子序列的beauty值的和是多少? 思路:(官方题解)我们先解决这个问题的子问题:我们可以求出bea ...
- 兰州大学第一届『飞马杯』程序设计竞赛 - ★★平形四边行★★(鸽巢原理+暴力)
题目链接:点击查看 题目大意:二维平面坐标系上给出 nnn 个点,现在需要求出四个点,满足四个点可以组成可退化的平行四边形 题目分析:因为坐标的范围很小,所以瞬间想到了上周刷到的一道题目的模型: Co ...
- 鸽巢原理(抽屉原理)的详解
抽屉原理 百科名片 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果.这一现象就是我们所说的"抽屉原理". 抽屉原理的一般含义为: ...
- 【组合数学】鸽巢原理 ( 鸽巢原理简单形式示例 4、5 )
文章目录 一.鸽巢原理简单形式示例 4 二.鸽巢原理简单形式示例 5 一.鸽巢原理简单形式示例 4 假设有 333 个 777 位二进制数 , A:a1a2a3a4a5a6a7A : a_1a_2a_ ...
- 【组合数学】鸽巢原理 ( 鸽巢原理简单形式 | 鸽巢原理简单形式示例 1、2、3 )
文章目录 一.鸽巢原理简单形式 二.鸽巢原理简单形式示例 1 三.鸽巢原理简单形式示例 2 四.鸽巢原理简单形式示例 3 一.鸽巢原理简单形式 鸽巢原理 : 将 n+1n + 1n+1 个物体 放到 ...
- 算法之组合数学及其算法篇(二) ----- 鸽巢原理
鸽巢原理 前言 鸽巢原理 运用1 运用二 运用三 鸽巢原理的推广 推论 运用一 运用二 鸽巢原理在几何上的作用 鸽巢原理对于数学的证明 前言 鸽巢原理又称抽屉原理或鞋盒原理,这个原理最早是由狄利克雷( ...
最新文章
- IOS8 PUSH解决方法
- 085_Document对象
- 以色列全国路网遭到了网络攻击 造成交通拥堵
- ITK:在图像区域上运行图像过滤器
- 合集 | 我在传统行业做数字化转型
- 暑假集训-个人赛第六场
- php中heredoc的使用方法
- 数据结构摧毁线性表用c语言,[简述]数据结构-线性表(c语言实现)
- visual studio 工具的使用
- rest sso 和_SSO企业单点登录系统——CAS REST认证方式
- 短时傅里叶变换原理解
- bledner做MMD心得(二)
- Android客户端如何使用cookie
- 一万年太久,只争朝夕,男儿有泪不轻弹,只是未到伤心处!!!!!!
- 如何设置无线路由器提高迅雷下载速度
- Bugku 分析 特殊后门(wireshark流量包分析)
- MATLAB 绘制论文图片格式设置万能代码模板
- 【数据结构与算法】动态规划-leetcode.1884 鸡蛋掉落两枚鸡蛋
- swsyth_kp_spxz_khxz_js
- ACM各OJ网站简介