zoukankan      html  css  js  c++  java
  • TC SRM 591 DIV2 1000

    很不错的一题,非常巧妙的用DP顺序解决这个问题。。。

    可以发现,只和A里面最小的有关系。。。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <queue>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 using namespace std;
     8 #define LL long long
     9 int dp[50*60000+1];
    10 vector<int>::iterator it;
    11 bool cmp(int a,int b)
    12 {
    13     return a > b;
    14 }
    15 class YetAnotherTwoTeamsProblem
    16 {
    17     public :
    18     LL count(vector <int> skill)
    19     {
    20        int p[51],n,sum,i,j;
    21        LL ans = 0;
    22        n = skill.size();
    23        sum = 0;
    24        for(i = 0,it = skill.begin();i < n;i ++,it ++)
    25        {
    26            p[i] = *it;
    27            sum += p[i];
    28        }
    29        sort(p,p+n,cmp);
    30        if(p[0] > sum - p[0])
    31        ans ++;
    32        dp[0] = 1;
    33        for(i = 0;i < n-1;i ++)
    34        {
    35            for(j = sum;j >= p[i];j --)
    36            {
    37                dp[j] += dp[j-p[i]];
    38            }
    39            for(j = 0;j <= sum;j ++)
    40            {
    41                if(p[i+1] + j > sum - p[i+1] - j&&j < sum-j)
    42                ans += dp[j];
    43                if(j >= sum - j)
    44                break;
    45            }
    46        }
    47        return ans;
    48     }
    49 };
  • 相关阅读:
    安装RabbitMQ说明
    死锁
    管程
    MybatisPlus快速开发
    了解Mybatis-Plus
    查看监听器状态
    The command supports no service 解决办法
    任务11 Arduino光照报警器
    任务10 测试光的强度实验
    任务9 Arduino光敏实验
  • 原文地址:https://www.cnblogs.com/naix-x/p/3343072.html
Copyright © 2011-2022 走看看