Hdu2660 Accepted Necklace【简单dfs】
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】相关推荐
- HDU-2660 Accepted Necklace
GDUT 2020寒假训练 专题一 D 原题链接 HDU-2660 Accepted Necklace GDUT-专题1-D BFS/DFS 题目大意 有N个石头想要从中选出K个做成项链,每颗石头有自 ...
- Accepted Necklace
Accepted Necklace Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) T ...
- POJ 1979 Red and Black (简单dfs)
题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...
- Accepted Necklace HDU - 2660
Accepted Necklace HDU - 2660 WA wa了两发又双叒叕是因为没读清楚题我裂开 AC代码 好家伙一手最low的dp竟然过了,我还一直不敢交hhhh #include < ...
- 简单dfs序 + 树链剖分
树链剖分 DFS序 先来讲一讲DFS序是什么东西,直接上图,方便理解. 估计巨巨们应该知道了DFS序的两个重要的东西,in,outin,outin,out数组. ininin数组就是这个点进入DFS的 ...
- 【AcWing 165】 小猫爬山 简单dfs + 剪枝优化
翰翰和达达饲养了N只小猫,这天,小猫们要去爬山. 经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 翰翰和达达只好花钱让它们坐索道下山. 索道上的缆 ...
- 近期题目整理2.0(递归和简单dfs)
1.HDU-1207 题目描述: 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往 ...
- (step4.3.6)hdu 2660(Accepted Necklace)
题目大意:输入三个整数t,n,k,分别表示测试用例数.宝石的种类数以及母亲所能接受的最大的重量.接下来的n行,每行有2个整数,分别表示每种宝石的价值及重量. 最后一行为母亲所能接受的保湿的最大重量 解 ...
- AOJ 0118: Property Distribution (简单DFS)
题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0118 题意:给定一个矩阵,同类字符相连的为一个块,问总共有几个块. 输入 ...
最新文章
- webstorm中git密码输入错误,重置问题
- 世界读书日 阿里人是这样看书的?
- 找规律 百度之星资格赛 1001 大搬家
- 【uva1380 - 一个调度问题】思路题+树形dp
- C 语言 int 型乘法溢出问题
- 使用Ant打包Android应用具体解释——Ant使用解析
- TCP/IP报文头部结构
- 我误会atoi()函数了
- 谷歌开源的代码评审规范,值得借鉴!
- [Linux用户空间编程-5]:用IPTable实现NAT功能
- socket编程到底是什么
- java实现日历打印项目
- 群同态和群同构的区别_同构和同态有什么区别,它们可以用在哪些方面?
- 中间继电器DZY-204/DC110V
- Rational Rose的讲解
- 计算机考研初试350分什么水平,考研分数,考研350分什么水平!
- Redis基于Set如何实现用户关注模型?
- 【R实验.8】方差分析
- 电脑电池出场容量与目前最大容量查询查询
- Golang库 - viper读取配置文件
热门文章
- jQuery插入节点,移动节点
- .NET可逆框架设计
- python输入整数n计算并输出1+22+333_Python 经典练习题-016
- 上项线体表位置_心理成熟的人都有哪些具体表现呢?
- 获取系统分辨率_一文弄懂高分辨率高速快门CMOS成像传感器技术应用现状
- linux用户的vim命令无效,Linux SUDO Bug可让您以root用户身份运行命令,大多数命令不受影响...
- Java NIO学习篇之缓冲区ByteBuffer详解
- 数据分析与挖掘建模实战002:数据获取
- ArcEngine二次开发API之Bug集(一 )
- redis 命令别名_【死磕 Redis】 哨兵(一):部署哨兵架构