2 900 250
0 50
刚开始没有考虑到对已经访问过的数字进行标记而导致错误
#include<queue>
#include<stdio.h>
#include<string.h>
using namespace std;
int x[10008];
int main()
{
int n,m,min,t;
scanf("%d",&n);
while(n--)
{
//priority_queue<int,vector<int>,greater<int> >q;
queue<int>q;
min=350;
scanf("%d",&m);
q.push(m);
memset(x,0,sizeof(x));
while(!q.empty())
{
int u=q.front();
if(min>u)
min=u;
q.pop();
for(int i=0;i<3;i++)
{
if(i==0)
t=u-150;
if(i==1)
t=u-200;
if(i==2)
t=u-350;
if(t>=0&&x[t]==0)
{
x[t]=1;
q.push(t);
}
}
}
printf("%d\n",min);
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/l15738519366/article/details/47835849