zoukankan      html  css  js  c++  java
  • CF1305C Kuroni and Impossible Calculation 鸽巢原理

    题意:

    给定n个整数和m,求\(\prod_{1\leq i<j\leq n}|a_i-a_j|mod(m)\)的值

    范围&性质:\(2\leq n\leq 2\times 10^5,1\leq m\leq 10^3,0\leq a_i \leq 10^9\)

    分析:

    吐槽一句:又是一道思维题,啊啊啊啊我就是想不到

    第一反应就是\(\omicron(n^2)\)的暴力枚举,由于n范围过大而放弃,同时注意到m的范围很小,mod(m)的余数不会超过m种,那么由鸽巢原理可得前m+1个数里面必定有至少两个数关于mod(m)同余,那么这两个数mod(m)的差值必定为0,即答案为0。对于剩下的n<m的情况直接\(\omicron(n^2)\)的枚举就可以了

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    namespace zzc
    {
        long long n,m;
    	long long a[200005],ans=1;
    	
    	long long labs(long long x)
    	{
    		return x<0?-x:x;
    	}
    	
    	void work()
    	{
    		scanf("%lld%lld",&n,&m);
    		for(int i=1;i<=n;i++)
    		{
    			scanf("%lld",&a[i]);
    		}
    		if(n>m)
    		{
    			printf("0\n");
    			return ;
    		}
    		else
    		{
    			for(int i=2;i<=n;i++)
    			{
    				for(int j=1;j<i;j++)
    				{
    					ans=(ans*labs(a[i]-a[j]))%m;
    				}
    			}
    			printf("%lld",ans);
    		}
    	}
    	
    }
    
    int main()
    {
    	zzc::work();
    	return 0;
     } 
    
  • 相关阅读:
    iis 500
    无线密码获取
    数据库创建
    系统基础配置指令
    手把手教你用ngrx管理Angular状态
    vue中v-cloak解决刷新或者加载出现闪烁(显示变量)
    HBuilder如何与真机连接
    01 spring boot源码阅读参考
    01 git学习笔记参考
    OAuth2授权基础知识
  • 原文地址:https://www.cnblogs.com/youth518/p/13649616.html
Copyright © 2011-2022 走看看