zoukankan      html  css  js  c++  java
  • ZOJ 1234 Chopsticks

    原题链接

    题目大意:有这么一个公式 A,B,C(A<=B<=C), (A-B)^2来衡量这对数字的好坏,值越小越好。现在给出一个数组,要求每三个配对,最后得到的每组值总和最小。

    解法:我是复制粘贴的代码

    参考代码:

    /*
    *	代码来源:www.cnblogs.com/zhexipinnong/archive/2012/04/19/2457217.html
    *	dp的问题需要再专题研究
    *
    */
    
     #include <iostream>
     using namespace std;
     int dp[5050][1010];
     #define maxn 1<<30
     int a[5050];
     int main()
     {
     
         int ncase,guests,chopsticks,i,j;
         cin>>ncase;
         while(ncase--)
         {
             cin>>guests>>chopsticks;
             for(i = chopsticks;i >= 1;i--)
                 cin>>a[i];
             for(i = 1;i < 5050;i++)
                 for(j = 0;j < 1010;j++)
                 {
                     if(j == 0)
                         dp[i][j] = 0;
                     else
                         dp[i][j] = maxn;
                 }
             for(j = 1;j <= guests + 8;j++)
                 for(i = 3;i <= chopsticks;i++)
                 {
                     if(i >= j * 3)
                     {
                         dp[i][j] = dp[i - 1][j];
                         int temp = dp[i - 2][j - 1] + (a[i - 1] - a[i]) * (a[i - 1] - a[i]);
                         if(temp < dp[i][j])
                             dp[i][j] = temp;
                     }
                 }
             cout<<dp[chopsticks][guests + 8]<<endl;
         }
         return 0;
     }
  • 相关阅读:
    http请求消息体和响应消息体
    整型常量
    C语言中字符串后面的'\0'
    String类
    二进制转成十六进制
    http消息头
    NULL和NUL
    拷贝构造函数和赋值表达式
    awk中的FS
    之前给女性网增加的一个滚动展示
  • 原文地址:https://www.cnblogs.com/naive/p/3568811.html
Copyright © 2011-2022 走看看