A-筱玛爱地理 ( 快速幂​​​​​​​、逆元、sort cmp函数-​​​​​​​结构体排序)

A-筱玛爱地理

链接:https://ac.nowcoder.com/acm/contest/946/A
来源:牛客网
 

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

筱玛是一个热爱地理的好筱玛。最近,在《地理II》作业本上,筱玛学到了“贝塔指数”的概念:

在经济地理学中,交通的联结度表示交通网络的发达程度,通常用贝塔指数来计算与比较。若用VV表示一个交通网络中结点的数量,用EE表示边的数量,则贝塔指数的计算方式为:β=EVβ=EV。

 

“实践是检验真理的唯一标准”。作为一个热爱地理的好筱玛,她马上就把新学的知识应用到实践当中去。筱玛一口气出了nn张交通网络规划图,其中第ii张交通网络GiGi有ViVi个结点和EiEi条边。筱玛一眼就看出了哪张图好、哪张图坏。但是作为一个负责任的好筱玛,她必须带领同学们一起进步。因此,她需要你将所有的nn张图按照贝塔指数排序,并求出它们各自的贝塔指数在模109+7109+7意义下的值。

输入描述:

 

第一行一个整数nn,表示交通网络规划图的数量。

接下来nn行,每行两个整数ViVi和EiEi,分别表示图GiGi中的结点数量和边的数量。

输出描述:

 

输出共nn行,每行一个数,表示贝塔指数第ii大的交通网络的贝塔指数在模109+7109+7意义下的值。

如果不能整除,输出分数取模后的结果。

示例1

输入

复制

1
1 3

输出

复制

3

说明

显然此时β=EV=3β=EV=3。

备注:

 

对于100%的数据,保证1≤n≤2×1051≤n≤2×105,1≤Vi,Ei≤1091≤Vi,Ei≤109。

题意:n对数相除 取模,即除法取模,逆元

题解:费马小定理 inv(a) : a^(p-2) = inv(a) (mod p)

知识点:快速幂逆元sort cmp函数

#include<bits/stdc++.h>
using namespace std;

#define mod 1000000007
long long int quick_mi(long long int x,long long int y)
{
	long long int res=1;
	while(y)
	{
		if(y&1) res=res*x%mod;//!!!res取模啊!!! 
		x*=x;
		x%=mod;
		y>>=1;
	}
	return res;
	
}
struct node
{
	long long  int v,e;
}aa[200005];
bool cmp(node  x,node  y)
{
	if(x.e*y.v>=y.e*x.v) return true;
	else return false;
}
int main()
{
	long long int m;
    scanf("%lld",&m); 
	for(int i=0;i<m;i++)
	{
		int e,v;
		scanf("%lld%lld",&aa[i].v,&aa[i].e);
	}
	sort(aa,aa+m,cmp);
	for(int i=0;i<m;i++)
	{
		printf("%lld\n",aa[i].e*quick_mi(aa[i].v,mod-2)%mod);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值