zoukankan      html  css  js  c++  java
  • hdu 2110

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2110

    题意:中文。

    mark:母函数。但是判有无解的时候要注意,假如答案是10000种,对10000取模后就是0,此时不能判断为无解。可以加一个数组solution表示是否有解。

    代码:

     1 # include <stdio.h>
     2 # include <string.h>
     3 
     4 
     5 int n, sum, MOD = 10000 ;
     6 int p[110], m[110], dp[10010], sol[10010] ;
     7 
     8 
     9 int work()
    10 {
    11     int i, j, k ;
    12     if (sum%3 != 0) return -1 ;
    13     memset (dp, 0, sizeof(dp)) ;
    14     memset (sol, 0, sizeof(sol)) ;
    15     dp[0] = sol[0] = 1 ;
    16     for (i = 0 ; i < n ; i++)
    17         for (j = sum/3 ; j >= 0 ; j--)
    18             for (k = 1 ;k <= m[i] && j >= k*p[i] ; k++)
    19                 dp[j] = (dp[j] + dp[j-k*p[i]]) % MOD,
    20                 sol[j] = (sol[j] | sol[j-k*p[i]]) ;
    21     if (!sol[sum/3]) return -1 ;
    22     return dp[sum/3] ;
    23 }
    24 
    25 
    26 int main ()
    27 {
    28     int i, ans ;
    29     while (~scanf ("%d", &n) && n)
    30     {
    31         sum = 0 ;
    32         for (i = 0 ; i < n ; i++)
    33             scanf ("%d%d", &p[i], &m[i]),
    34             sum += p[i]*m[i] ;
    35         ans = work() ;
    36         if (ans < 0) puts ("sorry") ;
    37         else printf ("%d
    ", ans) ;
    38     }
    39     return 0 ;
    40 }
  • 相关阅读:
    鼠标拖动DIV移动
    JS中事件&对象
    响应式与弹性布局
    JS中的变量和输入输出
    JS中的运算符&JS中的分支结构
    HTML基本标签
    CSS基础语法
    JS中循环结构&函数
    String 二
    StringBuffer
  • 原文地址:https://www.cnblogs.com/lzsz1212/p/3292049.html
Copyright © 2011-2022 走看看