nyoj1170最大的数
生活随笔
收集整理的這篇文章主要介紹了
nyoj1170最大的数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1170
http://115.159.40.116/problem_show.php?pid=5696
/*題目炸看上去挺復雜,又是+*又是可以加括號的。 其實找?guī)捉M數一算發(fā)現只有出現1的地方需要用加法, ps:至于怎么加、加在哪可自行思考 先在數組中掃一遍1,同時先計算加法(相當于添加括號) 然后累乘即可 我的程序需要注意幾組特殊數據 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 4 2 1 1 2 答案分別是 1 81 9 */ #include <stdio.h> int main() {int n, num[10005], i;while(~scanf("%d", &n)) {num[0] = 21, num[n+1] = 21;for(i = 1; i <= n; i++) scanf("%d", &num[i]);if(n > 1) {//考慮特殊數據 for(i = 1; i <= n; i++) {if(num[i] == 1) { /*考慮特殊數據*/ if(num[i-1] <= num[i+1] || (num[i-1]==2&&num[i+1]==1)) {num[i] += num[i-1];num[i-1] = 1;} else {num[i+1]++;i++;//只是為了減少一些不必要的循環(huán) }}}}for(i = 2; i <= n; i++) num[1] = (num[1]*num[i])%10086;printf("%d\n", num[1]);}return 0; }
與50位技術專家面對面20年技術見證,附贈技術全景圖
http://115.159.40.116/problem_show.php?pid=5696
題目描述
小明和小紅在打賭說自己數學學的好,于是小花就給他們出題了,考考他們誰NB,題目是這樣的給你N個數 在這n個數之間添加N-1個*或+,使結果最大,但不可以打亂原順序,請得出這個結果 如 1 3 5 結果是(1+3)*5=20;最大 可以添加若干個括號,但一定要保證配對,但是每兩個數之間只可能有一個*或+ 數列最前和最后不應有+或乘 小明想贏小紅但是他比較笨,請你幫幫他輸入
多組測試數據以EOF結束,每組有一個n(n<10000),然后有n個正整數a[i](1<=a[i]<=20)輸出
輸出最大的結果由于結果比較大,結果對10086取余樣例輸入
3 1 2 3 3 5 1 2樣例輸出
9 15/*題目炸看上去挺復雜,又是+*又是可以加括號的。 其實找?guī)捉M數一算發(fā)現只有出現1的地方需要用加法, ps:至于怎么加、加在哪可自行思考 先在數組中掃一遍1,同時先計算加法(相當于添加括號) 然后累乘即可 我的程序需要注意幾組特殊數據 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 4 2 1 1 2 答案分別是 1 81 9 */ #include <stdio.h> int main() {int n, num[10005], i;while(~scanf("%d", &n)) {num[0] = 21, num[n+1] = 21;for(i = 1; i <= n; i++) scanf("%d", &num[i]);if(n > 1) {//考慮特殊數據 for(i = 1; i <= n; i++) {if(num[i] == 1) { /*考慮特殊數據*/ if(num[i-1] <= num[i+1] || (num[i-1]==2&&num[i+1]==1)) {num[i] += num[i-1];num[i-1] = 1;} else {num[i+1]++;i++;//只是為了減少一些不必要的循環(huán) }}}}for(i = 2; i <= n; i++) num[1] = (num[1]*num[i])%10086;printf("%d\n", num[1]);}return 0; }
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的nyoj1170最大的数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot项目的 log4j漏
- 下一篇: 阿里巴巴闲鱼架构负责人王树彬:万亿交易规