http://acm.hdu.edu.cn/showproblem.php?pid=2660

题目大意:n个珠子里面找k个珠子,使得价值最大但重量不超过某一限定值。

直接对要不要第i颗珠子进行dfs,搜索过程中注意剪枝。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <queue>
using namespace std;
template <class T> void checkmin(T &t,T x) {if(x < t) t = x;}
template <class T> void checkmax(T &t,T x) {if(x > t) t = x;}
template <class T> void _checkmin(T &t,T x) {if(t==-1) t = x; if(x < t) t = x;}
template <class T> void _checkmax(T &t,T x) {if(t==-1) t = x; if(x > t) t = x;}
typedef pair <int,int> PII;
typedef pair <double,double> PDD;
typedef long long ll;
#define foreach(it,v) for(__typeof((v).begin()) it = (v).begin(); it != (v).end ; it ++)
const int N = 22;
int a[N] , b[N];
int n , K , ans;
int accept;
void dfs(int id,int vn,int wn,int k) {if(id > n || wn > accept) return;if(k+n-id+1 < K) return;if(id == n + 1) {if(k == K) checkmax(ans , vn);return;}if(k == K) checkmax(ans , vn);dfs(id+1,vn+a[id],wn+b[id],k+1);dfs(id+1,vn,wn,k);
}
int main() {int T;scanf("%d",&T);while(T--) {scanf("%d%d",&n,&K);for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]);scanf("%d",&accept);ans = -1;dfs(0,0,0,0);printf("%d\n" , ans);}return 0;
}

转载于:https://www.cnblogs.com/aiiYuu/archive/2013/03/30/2989949.html

Hdu2660 Accepted Necklace【简单dfs】相关推荐

  1. HDU-2660 Accepted Necklace

    GDUT 2020寒假训练 专题一 D 原题链接 HDU-2660 Accepted Necklace GDUT-专题1-D BFS/DFS 题目大意 有N个石头想要从中选出K个做成项链,每颗石头有自 ...

  2. Accepted Necklace

    Accepted Necklace Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) T ...

  3. POJ 1979 Red and Black (简单dfs)

    题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...

  4. Accepted Necklace HDU - 2660

    Accepted Necklace HDU - 2660 WA wa了两发又双叒叕是因为没读清楚题我裂开 AC代码 好家伙一手最low的dp竟然过了,我还一直不敢交hhhh #include < ...

  5. 简单dfs序 + 树链剖分

    树链剖分 DFS序 先来讲一讲DFS序是什么东西,直接上图,方便理解. 估计巨巨们应该知道了DFS序的两个重要的东西,in,outin,outin,out数组. ininin数组就是这个点进入DFS的 ...

  6. 【AcWing 165】 小猫爬山 简单dfs + 剪枝优化

    翰翰和达达饲养了N只小猫,这天,小猫们要去爬山. 经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 翰翰和达达只好花钱让它们坐索道下山. 索道上的缆 ...

  7. 近期题目整理2.0(递归和简单dfs)

    1.HDU-1207 题目描述: 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往 ...

  8. (step4.3.6)hdu 2660(Accepted Necklace)

    题目大意:输入三个整数t,n,k,分别表示测试用例数.宝石的种类数以及母亲所能接受的最大的重量.接下来的n行,每行有2个整数,分别表示每种宝石的价值及重量. 最后一行为母亲所能接受的保湿的最大重量 解 ...

  9. AOJ 0118: Property Distribution (简单DFS)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0118 题意:给定一个矩阵,同类字符相连的为一个块,问总共有几个块. 输入 ...

最新文章

  1. webstorm中git密码输入错误,重置问题
  2. 世界读书日 阿里人是这样看书的?
  3. 找规律 百度之星资格赛 1001 大搬家
  4. 【uva1380 - 一个调度问题】思路题+树形dp
  5. C 语言 int 型乘法溢出问题
  6. 使用Ant打包Android应用具体解释——Ant使用解析
  7. TCP/IP报文头部结构
  8. 我误会atoi()函数了
  9. 谷歌开源的代码评审规范,值得借鉴!
  10. [Linux用户空间编程-5]:用IPTable实现NAT功能
  11. socket编程到底是什么
  12. java实现日历打印项目
  13. 群同态和群同构的区别_同构和同态有什么区别,它们可以用在哪些方面?
  14. 中间继电器DZY-204/DC110V
  15. Rational Rose的讲解
  16. 计算机考研初试350分什么水平,考研分数,考研350分什么水平!
  17. Redis基于Set如何实现用户关注模型?
  18. 【R实验.8】方差分析
  19. 电脑电池出场容量与目前最大容量查询查询
  20. Golang库 - viper读取配置文件

热门文章

  1. jQuery插入节点,移动节点
  2. .NET可逆框架设计
  3. python输入整数n计算并输出1+22+333_Python 经典练习题-016
  4. 上项线体表位置_心理成熟的人都有哪些具体表现呢?
  5. 获取系统分辨率_一文弄懂高分辨率高速快门CMOS成像传感器技术应用现状
  6. linux用户的vim命令无效,Linux SUDO Bug可让您以root用户身份运行命令,大多数命令不受影响...
  7. Java NIO学习篇之缓冲区ByteBuffer详解
  8. 数据分析与挖掘建模实战002:数据获取
  9. ArcEngine二次开发API之Bug集(一 )
  10. redis 命令别名_【死磕 Redis】 哨兵(一):部署哨兵架构