1. 程式人生 > >Copy and Submit II

Copy and Submit II

做的 for ace names sin std 技術分享 using algorithm

技術分享圖片

技術分享圖片

這題內存只有512k,直接提交的話肯定錯,所以需要給他優化一下,首先就要看懂代碼是在幹什麽

比如說如果是輸入3個數 a,b,c,就應該輸出1+a+b+c+ab+ac+bc+abc,當時做的時候就推到這一步,然後就不知道怎麽做了,回來問了一下才知道有公式

1+a+b+c+ab+ac+bc+abc=(1+a)(1+b)(1+c)

這個樣子就很好辦了,我的代碼如下:

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 const int M = 1000000007;
 6 
 7
int main() 8 { 9 int n,temp; 10 long long ans; 11 while (scanf("%d", &n)!=EOF) 12 { 13 ans = 1; 14 for (int i = 0; i < n; i++) 15 { 16 scanf("%d", &temp); 17 ans = (ans*(1 + temp) % M) % M; 18 } 19 printf("%ld\n
", ans); 20 } 21 return 0; 22 }

Copy and Submit II