uva 10559——Blocks

深碍√TFBOYSˉ_ 2022-08-18 12:15 218阅读 0赞

题意:有n个带颜色的方块,同种颜色的方块连成一个区域,每次可以消除一个区域的方块x,然后得到分数x2,右边的方块左移,然后问求最大的分数。

思路:区间dp,dp(i,j,k)表示区间(i,j)在右边添上k个颜色与j相同的方块的最优解。对于每个状态,如果消去j,状态转移到dp(i,p-1,0)+(j-p+k+1)2,要不然枚举q<p使得a[q]=a[j]且a[q]不等于a[q+1],转移到dp(q+1,p-1,0)+dp(i,q,j-p+k+1);

code:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. typedef unsigned long long ull;
  5. typedef long double ld;
  6. const int INF=0x3fffffff;
  7. const int inf=-INF;
  8. const int N=1000000;
  9. const int M=205;
  10. const int mod=1000000007;
  11. const double pi=acos(-1.0);
  12. #define cls(x,c) memset(x,c,sizeof(x))
  13. #define cpy(x,a) memcpy(x,a,sizeof(a))
  14. #define ft(i,s,n) for (int i=s;i<=n;i++)
  15. #define frt(i,s,n) for (int i=s;i>=n;i--)
  16. #define lson l,m,rt<<1
  17. #define rson m+1,r,rt<<1|1
  18. #define lrt rt<<1
  19. #define rrt rt<<1|1
  20. #define middle int m=(r+l)>>1
  21. #define lowbit(x) (x&-x)
  22. #define pii pair<int,int>
  23. #define mk make_pair
  24. #define IN freopen("in.txt","r",stdin);
  25. #define OUT freopen("out.txt","w",stdout);
  26. int n,v[M];
  27. int dp[M][M][M];
  28. int sol(int l,int r,int k){
  29. if (l>r) return 0;
  30. int& ans=dp[l][r][k];
  31. if (ans) return ans;
  32. ans=sol(l,r-1,0)+(k+1)*(k+1);
  33. frt(i,r-1,l){
  34. if (v[i]==v[r])
  35. ans=max(ans,sol(l,i,k+1)+sol(i+1,r-1,0));
  36. }
  37. return ans;
  38. }
  39. int main()
  40. {
  41. int T;
  42. scanf("%d",&T);
  43. ft(ca,1,T){
  44. scanf("%d",&n);
  45. ft(i,1,n) scanf("%d",&v[i]);
  46. cls(dp,0);
  47. printf("Case %d: %d\n",ca,sol(1,n,0));
  48. }
  49. }

发表评论

表情:
评论列表 (有 0 条评论,218人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle 阻塞(blocking blocked)

       阻塞是DBA经常碰到的情形,尤其是不良的应用程序设计的阻塞将导致性能严重下降直至数据库崩溃。对DBA而言,有必要知道如何定位到当前系统有哪些阻塞,到底谁是阻塞者,谁是被阻

    相关 block

    Block内存管理的规则: 1,Block指针会在方法或函数结束后release掉,此时内存是储存在Stack里。 2,如果要在保存Block指针,需要用到copy方法(类

    相关 uva 10559——Blocks

    题意:有n个带颜色的方块,同种颜色的方块连成一个区域,每次可以消除一个区域的方块x,然后得到分数x2,右边的方块左移,然后问求最大的分数。 思路:区间dp,dp(i