zoukankan      html  css  js  c++  java
  • HDU 4293 Groups (dp)

      比赛的时候真心没想出来什么好的dp方法。。。蛋疼!整个比赛脑子发懵。。。!

    dp[i][j]表示到第j个人,i到j是一个group时说真话的最大人数。num[a][b]统计出说前面有a个,后面有b个的人的个数,当然,不超过n - a - b;

    dp[i][j] = max{dp[k][i]} + num[i][n-j];

    ans = max{dp[k][n]};

    ps:蛋疼的java.util.Arrays.fill(),妹的!内部函数就是一个for循环,只能初始化一维数组。。。表示以后再也不用了。。。

    import java.util.*;
    
    public class Main {
    
        /**
         * @param args
         */
        static final int N = 550;
        static int[][] num = new int[N][N];
        static int[][] dp = new int[N][N];
        static int[] pre = new int[N];
        
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            int n, a, b, i, j, ans;
            while(cin.hasNext()) {
                n = cin.nextInt();
                for(i = 0; i <= n; ++i) {
                    pre[i] = 0;
                    for(j = 0; j <= n; ++j) {
                        dp[i][j] = num[i][j] = 0;
                    }                
                }
                for(i = 0; i < n; ++i) {
                    a = cin.nextInt();
                    b = cin.nextInt();
                    num[a][b] ++;
                    if(num[a][b] > n - a - b)     num[a][b] = n - a - b;
                }
                for(j = 0; j <= n; ++j) {
                    for(i = 0; i < j; ++i) {
                        dp[i][j] = pre[i];
                        dp[i][j] += num[i][n-j];
                        pre[j] = Math.max(pre[j], dp[i][j]);
                    }
                }
                ans = 0;
                for(i = 0; i < n; ++i) {
                    ans = Math.max(ans, dp[i][n]); 
                }
                System.out.println(ans);
            }
        }
    }
  • 相关阅读:
    搭建consul cluster(三节点)
    php设计模式之:装饰者模式
    php设计模式之:中介者模式
    PECL 和 PEAR
    firefox汉化(利用中文插件)
    数据结构之最小树生成(用php描述)
    php设计模式之:观察者模式
    Ubuntu安装Microsoft Windows Fonts微软字体库
    mysql事物处理
    php数字转中文
  • 原文地址:https://www.cnblogs.com/vongang/p/2689302.html
Copyright © 2011-2022 走看看