列表

详情


NC14509. 所有情况的和

描述

在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,**但每种装备tabris必须选择拿一个**,**不能多也不能少**。
每件装备有自己的属性值,能给tabris属性加成。
对于不同种类的装备之间有叠加效果,如果选择多件装备,最终的属性加成为他们的乘积。
若tabris初始属性值为0,最后属性加成的期望是多少。

输入描述

有多组测试样例,输入到文件结束。
每组测试数据的第一行包含一个正整数NN,表示装备的种类数。
接下来N行,每行两个正整数ai、bi,表示两个不同的第ii种装备的属性加成值。

N∈[1,103]
ai,bi∈[1,106]

输出描述

对于每组测试数据输出一个整数,为了方便输出最终的结果先乘2N再对1e9+7取模后的值。

示例1

输入:

4
1 2
3 4
5 6
7 8

输出:

3465

说明:

3465 = (1*3*5*7) + (1*3*5*8) +(1*3*6*7) + (1*3*6*8) + (1*4*5*7) + (1*4*5*8) + (1*4*6*7) + (1*4*6*8) + (2*3*5*7) + (2*3*5*8) + (2*3*6*7) + (2*3*6*8) + (2*4*5*7) + (2*4*5*8) + (2*4*6*7) + (2*4*6*8) ;

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 12ms, 内存消耗: 476K, 提交时间: 2018-06-08 14:14:30

#include<iostream>
using namespace std;
typedef long long ll;

int main()
{
	ll n;
	while(cin>>n)
	{
		ll a,b,sum=1;
		for(ll i=0;i<n;i++)
		{
			cin>>a>>b;
			sum*=(a+b);
			sum%=1000000007;
		}
		cout<<sum<<endl;
	}
	return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 9ms, 内存消耗: 488K, 提交时间: 2019-09-04 13:46:36

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    int n,mod=1e9+7; while(cin>>n){
    	ll ans=1; while(n--){
    		ll a,b; cin>>a>>b; ans=ans*(a+b)%mod;
		} cout<<ans<<endl;
	}
}

Python3(3.5.2) 解法, 执行用时: 54ms, 内存消耗: 3328K, 提交时间: 2017-12-18 09:21:24

import sys
for s in sys.stdin:
	n = int(s[:-1])
	mul = 1
	for i in range(n):
		a, b = [int(x) for x in input().split(' ')]
		mul *= (a + b)
		mul %= 1000000007
	print(mul)

上一题