zoukankan      html  css  js  c++  java
  • HDU 2079 选课时间 组合题

    解题报告:最多有8种学分的课,然后每种学分的课最多有10门,问要选学分为n的课一共有多少种选法,注意学分相同的课之间没有区别。

    这题暴力可过,我用了8层循环,就简单了。听说可以用母函数,但没学过,看一下。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 using namespace std;
     6 int score[10];
     7 int main() {
     8     int T,n,k,x,y;
     9     scanf("%d",&T);
    10     while(T--) {
    11         scanf("%d%d",&n,&k);
    12         memset(score,0,sizeof(score));
    13         while(k--) {
    14             scanf("%d%d",&x,&y);
    15             score[x] = y;
    16         }
    17         int tot = 0;
    18         for(int a = 0;a<=score[1]&&a<=n;++a)
    19         for(int b = 0;b<=score[2]&&a+2*b<=n;++b)
    20         for(int c = 0;c<=score[3]&&a+2*b+3*c<=n;++c)
    21         for(int d = 0;d<=score[4]&&a+2*b+3*c+4*d<=n;++d)
    22         for(int e = 0;e<=score[5]&&a+2*b+3*c+4*d+5*e<=n;++e)
    23         for(int f = 0;f<=score[6]&&a+2*b+3*c+4*d+5*e+6*f<=n;++f)
    24         for(int g = 0;g<=score[7]&&a+2*b+3*c+4*d+5*e+6*f+7*g<=n;++g)
    25         for(int h = 0;h<=score[8]&&a+2*b+3*c+4*d+5*e+6*f+7*g+8*h<=n;++h)
    26         if(a+2*b+3*c+4*d+5*e+6*f+7*g+8*h == n)
    27         tot++;
    28         printf("%d
    ",tot);
    29     }
    30     return 0;
    31 }
    32         
    View Code
  • 相关阅读:
    Android开发环境配置
    Spring API后端原理及最佳实践
    Hibernate 编程
    MySQL 远程访问
    MySQL 5.7 8.0 重置密码
    H5 流媒体
    你不知道的项目
    Promise
    Why Vuex
    Vue 技术细节
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3259696.html
Copyright © 2011-2022 走看看