选课时间——深搜
来源:互联网 发布:淘宝老瑞贸易可信吗 编辑:程序博客网 时间:2024/05/21 03:20
又是一道完全不一样的深搜题目,绝望ing++
http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1150
http://acm.hdu.edu.cn/showproblem.php?pid=2079
#include <iostream>#include <cstdio>#include <memory.h>using namespace std;int score[10];int counter;int number,n;//从 学分为 1 的课程到学分为 number 的课程依次 DFS//直到修够 n 学分,或者超出限制为止void DFS(int j, int sum) //j 表示当前所选学分为 j 的课程{ //sum 保存已经修的学分总数 if (sum == n) // 注意这个 if 不能写在 下边的 if 后边 ,否则当选择最后一门课正好满足条件时会直接跳出,结果数会遗漏 { ++counter; return; } if (sum > n || j > number) return; if (score[j] == 0) // 表示不存在学分为 j 的课程 { DFS(j + 1, sum); return; } for (int i = 0; i <= score[j];i ++){ DFS(j + 1, sum + i * j); //DFS(j + 1, sum); }}int main(){ int T, k, a, b; scanf("%d", &T); while (T--) { counter = 0; memset(score, 0, sizeof(score)); scanf("%d %d", &n, &k); number = 0; while (k--) { scanf("%d %d", &a, &b); score[a] = b; //学分为 a 的课有 b 门 if (number < a) number = a; } DFS(1, 0); printf("%d\n", counter); } return 0;}
暴力运算,两种都可以的
#include <memory.h>#include<iostream>using namespace std;int main(){int t,n,k,a[9],sum,i,j,b,c,d[9];cin>>t;while(t--){cin>>n>>k;memset(a,0,sizeof(a));for(i=0;i<k;i++){cin>>b>>c; a[b]+=c;}sum=0;/*从7循环到0不会超时for(d[7]=0;d[7]<=a[8];d[7]++)for(d[6]=0;d[6]<=a[7];d[6]++)for(d[5]=0;d[5]<=a[6];d[5]++)for(d[4]=0;d[4]<=a[5];d[4]++)for(d[3]=0;d[3]<=a[4];d[3]++)for(d[2]=0;d[2]<=a[3];d[2]++)for(d[1]=0;d[1]<=a[2];d[1]++)for(d[0]=0;d[0]<=a[1];d[0]++) /*///这样会超时,为什么? for(d[0]=0;d[0]<=a[1];d[0]++) for(d[1]=0;d[1]<=a[2];d[1]++)for(d[2]=0;d[2]<=a[3];d[2]++)for(d[3]=0;d[3]<=a[4];d[3]++)for(d[4]=0;d[4]<=a[5];d[4]++)for(d[5]=0;d[5]<=a[6];d[5]++)for(d[6]=0;d[6]<=a[7];d[6]++)for(d[7]=0;d[7]<=a[8];d[7]++)if(d[0]*1+d[1]*2+d[2]*3+d[3]*4+d[4]*5+d[5]*6+d[6]*7+d[7]*8==n)sum++;cout<<sum<<endl;}return 0;}http://blog.csdn.net/qq_40513946/article/details/78797796
阅读全文
0 0
- 选课时间——深搜
- 选课时间
- hdu——2079——选课时间(题目已修改,注意读题)
- hdu2079-选课时间
- hdu 2079 选课时间
- HDU2079 选课时间
- HDU(2079)选课时间
- HDOJ 2079 选课时间
- hdu 2079 选课时间
- hdu 2079 选课时间
- hdu2079选课时间
- 选课——动态规划
- HDU_2079 选课时间(生成函数)
- hdu2079选课时间(背包)
- 【hdoj_2079】选课时间(母函数)
- 经典算法题目——选课方案设计
- 树形DP——Luogu2014 选课
- 选课
- pt-osc全解pt-online-schema-change
- PHP 循环取2个时间之内的年月
- 657. Judge Route Circle
- selenium + python 自动化测试
- 【JavaEE】jsp学习笔记之el技术和jstl
- 选课时间——深搜
- .NET漫游指南-011-.NET Framework中处理和引发事件
- c语言第八次练习题
- 【Mahout】Mahout-0.12.2的安装配置
- DL02-RNN学习笔记
- java实现链表
- 【Java并发编程】一.基础
- MySQL到CSV几种方法
- SpringMVC(SSM)获取网页数据和传出数据的几种方式