p.s. 之前按照列表做,做著做著就做岔了。這裡回歸正軌。
這道題後來做成了找規律題(我用遞迴搜尋不出意外地tle了)。discuss 上面有好些關於規律的討論和證明,比如:
知道後就簡單了很多了。
這裡參考了的規律總結。
thestoryofsnow
1032
accepted
144k
0msc++
1028b
/*
id: thestor1
lang: c++
task: poj1032
*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
// see for explanation
int main()
i--;
sum -= i;
i--;
// printf("i: %d, sum: %d\n", i, sum);
int left = n - sum;
// 1.若剩餘值(n-sum)等於i,則最後輸出序列為:3,4,...,i,i+2,即將原最大序列每項加1,再將最後剩餘的乙個1加到最後一項上。
if (left == i)
printf("%d\n", i + 2);
} else
for (int j = 1 + i - 1 - left + 1; j <= i; ++j)
printf("\n");
} return 0;
}
POJ1032 數學規律
給出乙個n,把n拆分成多個不同的數,要求他們的乘積最大,公升序輸出這樣的序列 乙個數分成兩部分,要使得乘積最大必然是兩部分越接近越好 例如9分成4 5,這必然是分成兩份的所有方法中最大的 然後我們 對於 5,我們發現 5分成2 3,會 有 2 3 5,所以5還可以分,也就是對於x分成兩份,x y z...
poj 1032 整數拆分
給你乙個n問求使得 a1 a2 ak n時 a1 a2 ak最大。a1 a2.不相等。沒看懂題目意思。以下 思路 將乙個數分成2份,如何分,使得這兩個數乘積最大。答案是將這個數平分,證明是求x n x 的最大值。基於這種思路,將n分成乘積最大的不相等的多份,應使得其中每份的數相差盡量少,即差值為1的...
poj 1032 整數拆分
好吧,又抄了一篇,嘿嘿 給你乙個n問求使得 a1 a2 ak n時 a1 a2 ak最大。a1 a2.不相等。沒看懂題目意思。我也沒看懂 以下 思路 將乙個數分成2份,如何分,使得這兩個數乘積最大。答案是將這個數平分,證明是求x n x 的最大值。基於這種思路,將n分成乘積最大的不相等的多份,應使得...