CF788C The Great Mixing BFS+思维
2024-08-26 21:32:05
这个模型十分巧妙啊,好题好题~
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;
}
最新文章
- NodeJs端口被占用的情况
- ORACLE 10.2.01升级10.2.05 for windows 详细文档
- Effective Java 41 Use overloading judiciously
- 关于this指向思考
- 关于C函数的参数个数的问题
- 使用apache的ab对页面进行压力测试
- jquery点击目标DIV以外关闭效果
- Xcode 之 snippet 代码重用
- iOS 集成Weex入门教程
- js函数的使用
- word中表格第一列序号的设置
- 【BZOJ2843】极地旅行社(Link-Cut Tree)
- JVM总结(二):JVM的内存分配策略
- shell scripts 之 代码量统计
- twiested 及其他轮子
- ubuntu下载超快的一个站点
- oracle死锁解决方法
- BZOJ.1028.[JSOI2007]麻将(贪心)
- 如何在Markdown文档中插入空格?
- 关于jQuery Form Plugin使用心得