这个模型十分巧妙啊,好题好题~

code:

#include <bits/stdc++.h>
#define N 3006
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int n,k,vis[N],in[N],dp[N];
vector<int>v;
queue<int>q;
int main()
{
int i,j;
// setIO("input");
scanf("%d%d",&n,&k);
for(i=1;i<=k;++i)
{
int x;
scanf("%d",&x), in[x]=1;
}
memset(dp,0x3f,sizeof(dp));
for(i=0;i<=1000;++i)
{
if(in[i])
{
v.push_back(n-i);
int x=n-i+1000;
dp[x]=1;
if(x==1000)
{
printf("1\n");
return 0;
}
q.push(x);
}
}
for(;!q.empty();)
{
int u=q.front();q.pop();
for(i=0;i<v.size();++i)
{
int x=u+v[i];
if(x>=0&&x<=2000&&dp[x]>dp[u]+1)
{
dp[x]=dp[u]+1;
q.push(x);
}
}
}
if(dp[1000]>=100000) printf("-1\n");
else printf("%d\n",dp[1000]);
return 0;
}

  

最新文章

  1. NodeJs端口被占用的情况
  2. ORACLE 10.2.01升级10.2.05 for windows 详细文档
  3. Effective Java 41 Use overloading judiciously
  4. 关于this指向思考
  5. 关于C函数的参数个数的问题
  6. 使用apache的ab对页面进行压力测试
  7. jquery点击目标DIV以外关闭效果
  8. Xcode 之 snippet 代码重用
  9. iOS 集成Weex入门教程
  10. js函数的使用
  11. word中表格第一列序号的设置
  12. 【BZOJ2843】极地旅行社(Link-Cut Tree)
  13. JVM总结(二):JVM的内存分配策略
  14. shell scripts 之 代码量统计
  15. twiested 及其他轮子
  16. ubuntu下载超快的一个站点
  17. oracle死锁解决方法
  18. BZOJ.1028.[JSOI2007]麻将(贪心)
  19. 如何在Markdown文档中插入空格?
  20. 关于jQuery Form Plugin使用心得

热门文章

  1. PAT(B)1015 德才论(C)
  2. Python开发【第三章】:文件操作
  3. T100——错误信息提示传入参数显示
  4. MySql数据库 优化
  5. JVM 介绍
  6. cmd查找端口占用情况
  7. Python中的内存管理机制
  8. MySql Host is blocked because of many connection errors 问题的解决方法
  9. 谷歌浏览器chrome安装vue-devtools 插件
  10. iOS有哪些数据类型/基本数据类型?