程式設計之美資格賽--題目2 : 大神與三位小夥伴
題目2 : 大神與三位小夥伴
描述
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)都因為恰好選擇了兩件價值相同的紀念品,所以並不是一種符合要求的紀念品選擇方法。
2 1 3樣例輸出
Case 1: 1 Case 2: 72
解析:我直接用暴力搞的,大資料應該過不了,小資料過了,大家可以參考一下,取餘的時候不能最後取餘應該數值太大了,要先取餘使數值變小再累加即可。後來想想用減法代替取餘會不會快點,時間上有一點點改進,不知道是不是網速的問題,大資料肯定過不去,得用什麼演算法來減少複雜度哈!下面貼一下程式碼供大家參考哈!
#include <iostream>
using std::endl;
using std::cin;
using std::cout;
int main()
{
int T;
cin >> T;
int num=1000000007;
for(int cnt=1;cnt<=T;++cnt)
{
int N;
cin >> N;
int sum=0;
//先計算三個紀念品價值都相同的
for(int i=1;i<=N;++i)
{
sum+=(N+1-i)*(N+1-i)*(N+1-i);
//做一個判斷
if(sum > num)
{
sum-=num;
}
}
for(int i=1;i<=N;++i)
for(int j=1;j<=N;++j)
{
//其中兩個紀念品價值相同的不符合條件要排除
if(j!=i)
{
for(int k=1;k<=N;++k)
{
//第三個紀念品仍然不能與前兩個相同
if((k!=i)&&(k!=j))
{
//找到符合條件的繼續累加
sum+=(N+1-i)*(N+1-j)*(N+1-k);
//做一個判斷
if(sum > num)
{
sum-=num;
}
}
}
}
}
cout << "Case "<< cnt << ": ";
cout << sum << endl;
}
return 0;
}
相關文章
- 程式設計之美資格賽 大神與三位小夥伴(推公式)程式設計公式
- 微軟2程式設計之美2015資格賽微軟程式設計
- 2013程式設計之美全國挑戰賽資格賽之傳話遊戲薦程式設計遊戲
- 程式設計之美初賽第一場--焦距程式設計
- 程式設計之美初賽第一場--樹程式設計
- 程式碼複審——給結對程式設計的小夥伴程式設計
- 程式設計題目解析程式設計
- 筆試題目——程式設計題筆試程式設計
- 程式設計之美之買票找零程式設計
- 程式設計之美複習筆記程式設計筆記
- 程式設計之美之高效安排見面會程式設計
- 程式設計之美之最短摘要生成程式設計
- 程式設計大神進階之路:Python技巧小貼士程式設計Python
- 三體PCC大賽題目-facebook微博like場景資料庫設計與效能壓測資料庫
- 南開高階語言程式設計2--OJ題目答案程式設計
- 程式設計之美:螞蟻爬杆問題的擴充套件程式設計套件
- Axure設計“每日任務目標”小程式
- 程式設計師聽音樂 遊戲界的”格萊美”程式設計師遊戲
- Go併發程式設計之美-CAS操作Go程式設計
- Go併發程式設計之美-互斥鎖Go程式設計
- YTU-OJ-Problem E: AB程式設計題--世界盃小組賽程式設計
- “九韶杯”河科院程式設計協會第一屆程式設計競賽題目分析以及總結程式設計
- 程式設計之美leetcode之編輯距離程式設計LeetCode
- 技術更高,設計更遠:華為全屋智慧設計大賽的審美之躍
- 演算法字串位包含程式設計之美演算法字串程式設計
- 筆記:《挑戰程式設計競賽(第2版)》(2)筆記程式設計
- 程式設計師的美:極致與瘋狂程式設計師
- 小學數學程式設計題程式設計
- [程式設計之美][2.2] 不要被階乘嚇倒程式設計
- “菜鳥”程式設計師和“大神”程式設計師差距在哪裡程式設計師
- 程式設計師必看:程式的美,不止動畫的美程式設計師動畫
- 近乎於“妖”!淺談《山海鏡花》的美術風格與設計
- 程式設計師程式碼面試指南:IT名企演算法與資料結構題目最優解程式設計師面試演算法資料結構
- 一道小程式設計題(自用)程式設計
- 迴圈結構程式設計 實驗題目程式設計
- 騰訊招聘Python程式設計師面試題目:Python資料結構與演算法Python程式設計師面試題資料結構演算法
- 「 C++挑戰賽 」下週開始,最特別的程式設計題目等你挑戰!C++程式設計
- 程式設計假期練習題--2程式設計