牛客练习赛49 A 筱玛爱地理

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

题目描述

筱玛是一个热爱地理的好筱玛。最近,在《地理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

刚开始天真的以为(a/b)%p==(a%p)/(b%p)%p...然后听群里大佬指点说要用逆元,,好吧,去看了位大佬的博客https://www.cnblogs.com/linyujun/p/5194184.html 大佬介绍了三种方法,不过像我这种蒟蒻记住一种应该就够了吧

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 2e5 + 5;
const ll mod = 1e9 + 7;
struct node{
    ll v;
    ll e;
}s[N];

bool comp(node a,node b)
{
return a.e*b.v>a.v*b.e;
}
ll pow_mod(ll a,ll b,ll p)//a^b%p
{
	ll ans=1;
	while(b)
	{
		if(b&1)
		ans =(ans*a)%p;
		a=a*a%p;
		b>>=1;
	}
	return ans;
}
int main()
{
    ll n;
    cin >> n;
    for(ll i=0;i<n;i++)
    cin >> s[i].v>>s[i].e;
    sort(s,s+n,comp);
    for(ll i=0;i<n;i++)
    {
    	ll inv=pow_mod(s[i].v,mod-2,mod); 
		cout << inv*s[i].e%mod;
    }
    
    return 0;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值