基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
 收藏
 关注
LYK最近在研究范德蒙矩阵与矩阵乘法,一个范德蒙矩阵的形式如下:

它想通过构造一个含有1~nm的n*m的矩阵G,使得G*V得到的n*n的矩阵T中所有位置上的元素之和最大。其中n,m<=100000,ai<=2*10^9。
你只需输出这个值对1e9+7取模后的结果。
 
在样例中,矩阵G为
1 4
2 3
当然可能存在其它的方法使得答案最大。

Input
第一行两个数n,m,接下来一行m个数表示a
Output
一个数表示答案
Input示例
2 2
2 3
Output示例
37

   G*V的和可以转化为SUM{ (1+ai+...+ain-1)*(xk+xk+1+....+xk+n-1) }
前面为一个等比数列,每个a[i]对应一个,显然将较大的x分配给较大的a[i]结果越大。

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include<cmath>
using namespace std;
#define LL long long
LL MOD=1e9+;
LL a[];
LL qpow(LL a,LL b,LL M){
LL r=;
while(b){
if(b&) r=r*a%M;
a=a*a%M;
b>>=;
}
return r;
}
void gcd(LL a,LL b,LL &d,LL &x,LL &y){
if(!b) {
d=a;
x=;
y=;
}
else{
gcd(b,a%b,d,y,x);
y-=x*(a/b);
}
}
LL inv(LL a,LL n){
LL d,x,y;
gcd(a,n,d,x,y);
return d==?(x+n)%n:-;
}
int main()
{
LL n,m,i,j,k;
cin>>n>>m;
for(i=;i<=m;++i) scanf("%lld",a+i);
sort(a+,a+m+);
LL ans=;
for(i=;i<=m;++i){
LL X=(i*n%MOD++(i-)*n%MOD)*n%MOD*inv(,MOD)%MOD;
LL A;
a[i]%=MOD;
if(a[i]==) A=;
else if(a[i]==) A=n;
else A=(qpow(a[i],n,MOD)-)*inv(a[i]-,MOD)%MOD;
ans=(ans+X*A%MOD)%MOD;
}
cout<<ans<<endl;
return ;
}

51NOD-1960-数学/贪心的更多相关文章

  1. 51nod 1432 - 独木舟 - [贪心]

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1432 基准时间限制:1 秒 空间限制:131072 KB   ...

  2. 洛谷3月月赛div2 题解(模拟+数学+贪心+数学)

    由于本人太蒻了,div1的没有参加,胡乱写了写div2的代码就赶过来了. T1 苏联人 题目背景 题目名称是吸引你点进来的. 这是一道正常的题,和苏联没有任何关系. 题目描述 你在打 EE Round ...

  3. UVALive 7147 World Cup(数学+贪心)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  4. HDOJ 5073 Galaxy 数学 贪心

    贪心: 保存连续的n-k个数,求最小的一段方差... .预处理O1算期望. .. Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Lim ...

  5. FZU 2144 Shooting Game(数学+贪心)

    主要思路:求出蚊子到达球的时间区间(用方程得解),对区间做一个贪心的选择,选择尽可能多的区间有交集的区间段(结构体排序即可),然后计数. #include <cstdio> #includ ...

  6. hdu 3573(数学+贪心)

    Buy Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. hdu 5747(数学,贪心)

    Aaronson Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  8. 51nod 1243 二分+贪心

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1243 1243 排船的问题 题目来源: Codility 基准时间限制: ...

  9. Codeforces Round #323 (Div. 2) C 无敌gcd 数学/贪心

    C. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  10. [51nod] 1432 独木桥 贪心

    n个人,已知每个人体重.独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人.显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含 ...

随机推荐

  1. hdu6121 Build a tree

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6121 题面: Build a tree Time Limit: 2000/1000 MS (J ...

  2. Ubuntu下pycharm设定任务栏图标后打开出现问号图标

    事情是这样的: ubuntu16.04,安装好pycharm后,bin下只有一个sh执行文件,想要弄成任务栏图标,所以在/usr/share/applications下新建文件pycharm.desk ...

  3. Linux使用free命令查看实际内存占用

    转自:http://www.cnblogs.com/pengdonglin137/p/3315124.html Linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free ...

  4. AVAudioSession(1):iOS Audio Session 概览

    本文转自:AVAudioSession(1):iOS Audio Session 概览 | www.samirchen.com 本文内容主要来源于 Audio Session Programming ...

  5. 20145329《Java程序设计》第八周学习总结

    教材学习内容总结 日志 1.java.util.logging包提供了日志功能相关类与接口. 2.使用日志的起点是Logger类,Longer类的构造函数标示为protected,不同包的类药取得Lo ...

  6. STL学习笔记(不定期更新)

    algorithm *1.sort() 用法:sort(数组名,名+长度(,cmp)); int cmp(T a,T b)//T是要排序的a,b的类型,也可以是结构体中任意成员变量 { return ...

  7. HandyJSON第三方库的日常使用与错误记录

    一.错误提示 1.更新Xcode10.2,Swift5.0出现错误提示 Undefined symbols for architecture x86_64: "_swift_getField ...

  8. 关于JavaScript对象中的一切(二) -- 继承

    先上一张我制作的思维导图.

  9. 如何升级到python3版本并且安装pip3

    如何升级到python3版本并且安装pip3 准备: Python-3.5.2.tar.xz pip-8.1.2.tar.gz setuptools-24.0.2.zip 步骤: 1.自定义编译安装p ...

  10. poj 2187:Beauty Contest(旋转卡壳)

    Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 32708   Accepted: 10156 Description Bes ...