zoukankan      html  css  js  c++  java
  • 【HDOJ】2386 Dart Challenge

    纯粹母函数+滚动数组,水之。

     1 /* 2386 */
     2 #include <iostream>
     3 #include <string>
     4 #include <map>
     5 #include <queue>
     6 #include <set>
     7 #include <stack>
     8 #include <vector>
     9 #include <algorithm>
    10 #include <cstdio>
    11 #include <cmath>
    12 #include <ctime>
    13 #include <cstring>
    14 #include <climits>
    15 #include <cctype>
    16 using namespace std;
    17 
    18 const int maxn = 20005;
    19 
    20 int cnt[305];
    21 int score[305];
    22 bool f[2][maxn];
    23 
    24 int main() {
    25     int i, j, k;
    26     int t, tt;
    27     int n, m;
    28     int ans, mx;
    29     int cur, pre;
    30     
    31     #ifndef ONLINE_JUDGE
    32         freopen("data.in", "r", stdin);
    33         freopen("data.out", "w", stdout);
    34     #endif
    35     
    36     scanf("%d", &tt);
    37     for (t=1; t<=tt; ++t) {
    38         scanf("%d %d", &n, &m);
    39         memset(cnt, 0, sizeof(cnt));
    40         mx = 0;
    41         for (i=0; i<n; ++i) {
    42             scanf("%d", &k);
    43             mx = max(k, mx);
    44             ++cnt[k];
    45             ++cnt[k<<1];
    46             ++cnt[(k<<1)+k];
    47         }
    48         --cnt[(mx<<1)+mx];
    49         for (n=i=0; i<305; ++i)
    50             if (cnt[i])
    51                 score[n++] = i;
    52         memset(f, false, sizeof(f));
    53         f[0][0] = f[1][0] = true;
    54         
    55         for (j=1, cur=1, pre=0; j<=m; ++j, pre=cur, cur=!cur) {
    56             for (i=0; i<=score[n-1]*j; ++i) {
    57                 for (k=0; k<n; ++k) {
    58                     if (f[pre][i] && i+score[k]<maxn)
    59                         f[cur][i+score[k]] = true;
    60                 }
    61             }
    62         }
    63         ans = 0;
    64         for (i=0; i<=score[n-1]*m; ++i)
    65             if (f[pre][i])
    66                 ++ans;
    67         printf("Scenario #%d:
    %d
    
    ", t, ans);
    68     }
    69     
    70     #ifndef ONLINE_JUDGE
    71         printf("%d
    ", (int)clock());
    72     #endif
    73     
    74     return 0;
    75 }
  • 相关阅读:
    移动端(H5)弹框组件--简单--实用--不依赖jQuery
    jquery attr()和prop()方法的区别
    jQuery选择器
    Tomcat&Web程序结构&Http协议(一)
    Javascript&DOM(三)
    html&CSS代码篇(二)
    html&css入门篇(一)
    『一本通』区间DP
    『P1549』棋盘问题
    『USACO08OCT]』Watering Hole
  • 原文地址:https://www.cnblogs.com/bombe1013/p/4431490.html
Copyright © 2011-2022 走看看