将金币状压,然后就没多说的了。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Abs(a) ((a) < 0 ? -(a) : (a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long//#define ON_DEBUG#ifdef ON_DEBUG#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#define FileOpen() freopen("in.txt","r",stdin);#else#define D_e_Line ;
#define D_e(x)  ;
#define Pause() ;
#define FileOpen() ;#endifstruct ios{template<typename ATP>ios& operator >> (ATP &x){x = 0; int f = 1; char c;for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();x*= f;return *this;}
}io;
using namespace std;int a[100007], sum[100007], coin[17];
int bin[17];
int f[(1 << 16)+7];
int main(){FileOpen();int m, n;io >> m >> n;int totalMoney = 0;R(i,1,m){io >> coin[i];totalMoney += coin[i];}R(i,1,n){io >> a[i];sum[i] += sum[i - 1] + a[i];}bin[1] = 1;R(i,2,m) bin[i] = bin[i - 1] << 1;int maxx = (1 << m) - 1;R(i,0,maxx){R(j,1,m){if(i & bin[j]){int tmp = upper_bound(sum + 1, sum + n + 1, sum[f[i ^ bin[j]]] + coin[j]) - sum;f[i] = Max(f[i], tmp - 1);}}}int ans = -1;R(i,0,maxx){if(f[i] == n){int totalCost = 0;R(j,1,m){if(i & bin[j]){totalCost += coin[j];}}ans = Max(ans, totalMoney - totalCost);}}if(ans < 0)printf("-1");elseprintf("%d", ans);return 0;
}

转载于:https://www.cnblogs.com/bingoyes/p/11221632.html

Luogu3092 [USACO13NOV]没有找零No Change (状压DP)相关推荐

  1. 【[USACO13NOV]没有找零No Change】

    其实我是点单调队列的标签进来的,之后看着题就懵逼了 于是就去题解里一翻,发现楼上楼下的题解说的都好有道理, f[j]表示一个再使用一个硬币就能到达i的某个之前状态,b[now]表示使用那个能使状态j变 ...

  2. [ NOIP提高组 2016]愤怒的小鸟(暴搜 + 状压DP)// [SNOI2017]一个简单的询问(莫队)

    一次性写两道题 T1:一个简单的询问 题目 题解 代码实现 T2:愤怒的小鸟 题目 暴搜题解 暴搜代码实现 状压DP题解 状压DP代码实现 T1:一个简单的询问 题目 给你一个长度为 N 的序列 ai ...

  3. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  4. UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)

    整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...

  5. POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)

    poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...

  6. P2340 奶牛会展(状压dp)

    P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...

  7. Codeforces Gym 100676G Training Camp 状压dp

    http://codeforces.com/gym/100676 题目大意是告诉你要修n门课,每门课有一个权值w[i], 在第k天修该课程讲获得k*w[i]的学习点数,给出了课程与先修课程的关系,要修 ...

  8. 【思维题 状压dp】APC001F - XOR Tree

    可能算是道中规中矩的套路题吧-- Time limit : 2sec / Memory limit : 256MB Problem Statement You are given a tree wit ...

  9. BZOJ.3058.四叶草魔杖(Kruskal 状压DP)

    题目链接 \(2^{16}=65536\),可以想到状压DP.但是又有\(\sum A_i\neq 0\)的问题.. 但是\(2^n\)这么小,完全可以枚举所有子集找到\(\sum A_i=0\)的, ...

最新文章

  1. 聊聊大麦网UWP版的首页顶部图片联动效果的实现方法
  2. Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象
  3. k8s 安装redis-operator并以operator方式部署redis-standalone redis-cluster集群完整操作记录
  4. python中unique_一个神奇的Python机器学习交互应用开放框架
  5. 28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
  6. 几个OpenSource的源代码管理软件
  7. Pytorch(6)-设置随机种子,复现模型结果
  8. The following SDK components were not installed: extra-google-m2repository and platform-tools
  9. 取消语法检测_中考取消了考纲,学生要如何得高分
  10. 在WinMain中嵌Console窗口
  11. PTA--Reversing Linked List
  12. php 实现二叉树的最大深度_LintCode 题解丨Apple面试题:二叉树的最大深度
  13. python阈值分割_Python实现otsu阈值分割算法
  14. 为什么手机浏览器打不开html文件,win7浏览器打不开本地html文件的原因及解决方法...
  15. ElasticSearch的简单了解和使用
  16. 【PTA】【C语言(一)】
  17. python下载包失败,下载python包失败
  18. 【续】DeepMind项目取得新进展:一种改进机器人学习系统的新思路
  19. 外校保研北大计算机,北大2018年本校保研率超53% 外校生多来自双一流名校
  20. SegeX Progress:MFC通用进度条

热门文章

  1. vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
  2. 对datatable进行linq过滤
  3. 感觉没睡好就..-shenmedoumeixie....
  4. 一个包的TcpServer流程
  5. 【Matlab】矩阵三角分解法求解方程组
  6. 利用jquery getJSON 调用ashx实现ajax调用
  7. InfoVista.NET 内部数据格式简介
  8. 银河证券王锦炎:大数据在金融领域应用
  9. PowerDesigner导入SQL脚本
  10. Java多线程超详细总结