POJ 3172 (认真读题的题)
生活随笔
收集整理的這篇文章主要介紹了
POJ 3172 (认真读题的题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
思路:
題目很有意思
首先 題里說:N<=1000 題里又說
誒呦 woc? 這不自相矛盾嘛 最壞情況也就是個 斐波那契數列 幾十個數 暴搜+剪枝不就好了嘛
剪枝:從大往小搜,如果前綴和+當前的和<=當前解 return
(這正確性很顯然 但是不是很好想到)
//By SiriusRen #include <cstdio> using namespace std; int n,k,ans,a[55],sum[55]; void dfs(int rec,int x){if(x>ans)ans=x;if(rec<=0)return;for(int i=rec;i;i--)if(x+a[i]<=k&&sum[i]+x>ans)dfs(i-1,x+a[i]); } int main(){scanf("%d%d",&n,&k);for(int i=1;i<=n;i++)scanf("%d",&a[i]),sum[i]=sum[i-1]+a[i];dfs(n,0);printf("%d\n",ans); }轉載于:https://www.cnblogs.com/SiriusRen/p/6532199.html
總結
以上是生活随笔為你收集整理的POJ 3172 (认真读题的题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 容器中不支持中文的解决方法
- 下一篇: Android Studio笔记