The Great Mixing

化简一下公式后发现, 问题变成了, 取最少多少数能使其和为1, bitset优化一下背包就好啦。

题解中介绍了一种bfs的方法没, 感觉比较巧妙。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
#define PII pair<int, int>
#define SZ(x) ((int)x.size())
#define ull unsigned long long using namespace std; const int N = + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-;
const double PI = acos(-); int n, k, a[N];
bitset<> dp[N]; int main() {
scanf("%d%d", &n, &k);
for(int i = ; i <= k; i++) scanf("%d", &a[i]);
for(int i = ; i <= k; i++) {
if(a[i] == n) {
puts("");
return ;
}
a[i] -= n;
}
sort(a + , a + + k);
k = unique(a + , a + + k) - a - ;
dp[][] = ;
for(int i = ; i <= ; i++) {
for(int j = ; j <= k; j++) {
if(a[j] >= ) dp[i] |= dp[i - ] << a[j];
else dp[i] |= dp[i - ] >> (-a[j]);
if(dp[i][]) {
printf("%d\n", i);
return ;
}
}
}
puts("-1");
return ;
} /*
*/

最新文章

  1. Swift - 设置tableView每个分区cell圆角
  2. 在CentOS或RHEL防火墙上开启端口
  3. vue 2.0-1
  4. java多线程-BlockingQueue
  5. MyEclipse------execute()使用方法
  6. DisUnity——Unity3D反编译资源提取利刃
  7. Spring Assert.notNull
  8. 手机站点开发及手机中图片加速显示img的Canvas方法
  9. Summary Ranges leetcode
  10. 【JAVAWEB学习笔记】17_jsp
  11. Kotlin实现LeetCode算法题之Median of Two Sorted Arrays
  12. EF Core 快速上手——EF Core的三种主要关系类型
  13. FTP服务器搭建
  14. delegate--委托
  15. Luogu P4462 [CQOI2018]异或序列
  16. Solaris 10主机名和IP地址步骤
  17. sql 中常见的控制流语句
  18. Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
  19. Android自定义View探索—生命周期
  20. innodb_flush_log_at_trx_commit

热门文章

  1. springboot系列之-logging
  2. Hibernate添加日志--log4j
  3. IEEE 802.1X标准
  4. FineReport: 清空(重置)条件reset()
  5. d2-admin中那些不错的技巧
  6. Dom4j解析xml内容——(三)
  7. Freemarker取list集合中数据(将模板填充数据后写到客户端HTML)
  8. cartographer 安装问题
  9. Dubbo服务超时
  10. js实现页面遮罩层,并且阻止页面body滚动