题目大意:有f朵花要插到v个花瓶里面去。。。不同的花插到不同的花瓶有不同的美观程度,求最大的美观程度,,还有一个限制条件,如i>j,则编号为i的花能插的花瓶编号也必须大于 编号为j的花所插花瓶的编号。(因为没有注意到这个条件,我想了n久~)。
好的我们说思路
理解题意后还是比较好写的,这里又有花又有花瓶的,肯定是用二维dp啦。假设dp[i][j],为第i朵花插到第j个瓶子中能获得的最大美观程度,dp[i][j]=max(dp[i-1][k]+a[i][j]),k>=i-1&& k<j ,a[i][j]为给出的每朵花对应花瓶的美观程度.
#include "iostream" using namespace std; #define len 110 int main() { int f,v; int i,j,k; int a[len][len]; int dp[len][len];//dp[i][j] 表示第i朵花插到第j个瓶子的最大价值 dp[i][j]=max(dp[i-1][k]+a[i][k]); scanf("%d",&f); scanf("%d",&v); for (i=0;i<f;i++) { memset(dp[i],0,sizeof(dp[i])); for (j=0;j<v;j++) { scanf("%d",&a[i][j]); if (i==0) { dp[i][j]=a[i][j]; } } } for (i=1;i<f;i++) { for (j=i;j<v;j++) { int max=-999999; for (k=i-1;k<j;k++) { if (max<dp[i-1][k]+a[i][j]) { max=dp[i-1][k]+a[i][j]; } } dp[i][j]=max; } } int maxt=dp[f-1][0]; for (i=0;i<v;i++) { if(maxt<dp[f-1][i]) maxt=dp[f-1][i]; } cout<<maxt<<endl; return 0; }
相关推荐
北京大学的在线编程竞赛平台POJ(Problem Online Judge)为初学者提供了一系列的编程题目,其中“北大POJ初级-动态规划”是专门为学习和训练这个主题设立的板块。在这个部分,学员可以通过解题报告和已通过验证(AC...
这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码"表示这是一个已经解决并获得正确答案(Accepted)的编程挑战。解题报告通常包含了解决问题的思路、算法分析和优化...
标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...
【标题】"POJ1426-Find The Multiple【BFS+同余模】"是一道来源于北京大学在线编程平台POJ的算法题目,主要涉及到了广度优先搜索(BFS)与同余模运算的知识点。这道题目要求解决的是寻找一个整数的倍数问题,可能...
【标题】"POJ1015-Jury Compromise" 是一个编程竞赛题目,主要涉及的是动态规划(Dynamic Programming, 简称DP)的算法应用。动态规划是一种解决复杂问题的有效方法,它通过将问题分解成子问题,并存储子问题的解来...
解决这类问题可能需要用到搜索算法(如深度优先搜索、广度优先搜索)、动态规划、贪心策略,甚至是数学建模。具体解题策略则需要查看解题报告和源代码才能得知。 总的来说,这个压缩包提供了从问题理解到解决方案的...
4. **动态规划**:动态规划是一种解决复杂问题的有效方法,常常用于求解最优化问题。它要求解题者具备递推思想,能够构造状态转移方程。 5. **贪心策略**:贪心算法是通过每一步选择当前最优解来逼近全局最优解的...
解题的关键在于理解和应用适合的算法,比如动态规划、二分查找、平衡树操作等。在分析解题报告时,我们可以学习到如何分析问题、选择合适的算法,并在实际编程中实现这些思想。而AC代码则提供了具体的实现参考,展示...
该题目旨在考察参赛者对动态规划或贪心算法的理解与应用。 【描述】"北大POJ1010-STAMPS"解题报告+AC代码,意味着这是一个关于如何解决这个特定问题的详细解答,包含了问题分析、算法设计以及通过测试(Accepted,...
这是魔兽世界终极版POJ的-测试数据,找了好久才找到的。 本来想设置为0积分,但是它居然自动收费(o_ _)ノ。 看传送门:https://pan.baidu.com/s/1cCIwW8psGDASu2JdZawG3Q
`POJ1416-Shredding Company.cpp`是一个C++源代码文件,包含了实现动态规划算法的程序代码。`POJ1416-Shredding Company.doc`可能是解题报告,详细解释了解题思路、算法设计过程以及可能的优化措施。 详细知识点: ...
可能涉及排序、搜索、动态规划、贪心算法等经典方法。对于“Pots”问题,可能需要对 pots 进行有效的管理和操作,以达到某种最优目标。 4. **代码实现**:AC代码是指“Accepted”代码,即已经通过了所有测试用例的...
可能是利用动态规划、图论、贪心策略或是搜索算法。解题报告中会详细阐述这些思路,并且通过AC代码展示实际的实现过程。 在学习或参考这个解题报告和代码时,我们可以深入理解如何应用编程技巧和算法来解决实际问题...
【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...
【压缩包子文件的文件名称列表】中,"POJ3080-Blue Jeans.cpp" 是提交给POJ平台的AC代码,可能包含了上述的动态规划解法,使用C++语言实现。"POJ3080-Blue Jeans.doc" 可能是解题报告文档,详细解释了解题过程和思路...
【标题】"POJ2299-Ultra-QuickSort"是北京大学在线判题系统POJ上的一道编程题目,其主要涉及的算法是快速排序(Ultra-QuickSort)。快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是采用...
AC代码则展示了如何用C++语言将这些思路转化为可执行的程序,其中可能运用了数组、字符串操作、循环、条件判断、递归、动态规划等基本编程元素,也可能涉及高级算法如贪心、二分查找、图论等。 为了深入理解这个...
代码中可能会用到动态规划、贪心算法等策略,以求在满足题目要求的同时,保证算法的时间复杂度尽可能低,从而在POJ平台上获得AC状态。而解题报告则会详细解释这些算法的应用和选择原因,以及代码的具体实现细节。
解题时,程序员可能需要理解问题背后的数学模型,然后选择合适的数据结构(如链表、队列、栈、树等)和算法(如动态规划、贪心、回溯等)来求解。例如,如果问题是关于分割圆饼,可能需要处理角度计算和分配的问题;...
《POJ2525-Text Formalization:深入解析TrieTree》 在计算机科学的世界里,算法和数据结构是解决问题的关键。今天我们要探讨的是一个名为"POJ2525-Text Formalization"的问题,它涉及到一种高效的数据结构——Trie...