博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程之美 题目2 : 大神与三位小伙伴
阅读量:6431 次
发布时间:2019-06-23

本文共 1664 字,大约阅读时间需要 5 分钟。

题目2 : 大神与三位小伙伴

时间限制:2000ms
单点时限:1000ms
内存限制:256MB

描述

L国是一个有着优美景色且物产丰富的国家,很多人都喜欢来这里旅游并且喜欢带走一些纪念品,大神同学也不例外。距离开L国的时间越来越近了,大神同学正在烦恼给她可爱的小伙伴们带什么纪念品好,现在摆在大神同学面前的有三类纪念品A, B, C可以选择,每类纪念品各有N种。其中种类为A_i, B_i, C_i的纪念品价值均为i, 且分别有N+1-i个剩余。现在大神同学希望在三类纪念品中各挑选一件然后赠送给她的三名可爱的小伙伴,但是她又不希望恰好挑出来两件价值相同的纪念品,因为这样拿到相同价值纪念品的两位小伙伴就会认为大神同学偏袒另一位小伙伴而不理睬她超过一星期。现在,大神同学希望你买到的三件纪念品能让三位小伙伴都开心并且不和她闹别扭,她想知道一共有多少种不同挑选的方法?

因为方案数可能非常大,大神同学希望知道挑选纪念品的方案数模10^9+7之后的答案。

 

输入

第一行包括一个数T,表示数据的组数。

接下来包含T组数据,每组数据一行,包括一个整数N。

 

输出

对于每组数据,输出一行“Case x: ”,其中x表示每组数据的编号(从1开始),后接一个数,表示模10^9+7后的选择纪念品的方案数。

 

数据范围

小数据:

1<=T<=10

1<=N<=100

大数据:

1<=T<=1000

1<=N<=10^18

 

样例解释

对于第二组数据,合法的方案有以下几种,(X,Y,Z)表示选择了A类纪念品中价值为X的,B类纪念品中价值为Y的,C类纪念品中价值为Z的。

(1,1,1): 3*3*3=27种

(1,2,3): 3*2*1=6种

(1,3,2): 3*1*2=6种

(2,1,3): 2*3*1=6种

(2,2,2): 2*2*2=8种

(2,3,1): 2*1*3=6种

(3,1,2): 1*3*2=6种

(3,2,1): 1*2*3=6种

(3,3,3): 1*1*1=1种

一共27+6+6+6+8+6+6+6+1=72种选择纪念品的方案

注意,如(1,1,2), (2,3,3), (3,1,3)都因为恰好选择了两件价值相同的纪念品,所以并不是一种符合要求的纪念品选择方法。

 样例输入

213
样例输出
Case 1: 1Case 2: 72
1 #include
2 using namespace std; 3 long long p = 1000000007; 4 int main() 5 { 6 int ncase; //number of cases 7 cin>>ncase; 8 int curCase; 9 long long n;10 long long S1;11 long long S2;12 long long S3;13 long long S;14 for (curCase = 1; curCase<=ncase; curCase++)15 {16 cin>>n;17 S1 = (n*(n+1)/2) * (n*(n+1)/2) * (n*(n+1)/2);18 S2 = (n*(n+1)*(2*n+1)/6)*(n*(n+1)/2)*3;19 S3 = (n*(n+1)/2)*(n*(n+1)/2);20 S = S1 - S2 + 3*S3;21 cout<<"Case "<
<<": "<
<

 

转载于:https://www.cnblogs.com/wacc/p/3662912.html

你可能感兴趣的文章
WebView增加一个水平Progress,位置、长相随意
查看>>
easyui messager alert 三秒后自动关闭提示
查看>>
core data 基础操作
查看>>
ORM框架Hibernate (四) 一对一单向、双向关联映射
查看>>
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>
mybatis中的#和$的区别
查看>>
ubuntu下搭建NDK环境
查看>>
MessageDigest简单介绍
查看>>
webpack window 使用sass来编译css样式
查看>>
D3 & Data Visualization in Ext JS
查看>>
java通过UUID生成16位唯一订单号
查看>>
001-web基本程序搭建
查看>>