BC round 49 A Untitled

BC round 49 A Untitled

分类:递归各种比赛

本来是坐了两题的,结果第二题被黑了,两题的时候排名room第三,真是吓到我了,说实话这次真是认真做的,,结

认真做题,认真做题,认真做题(重要的事说三遍)

思路:

这道题我没有排序,直接递归的因为层数是递增的,所以可以优先找到层数最少的,每次对小于当前的数取余就ok啦,然后继续递归它的余数,直到为0,这时候应该标记几下,让以后的递归都结束,因为已经找到了满足条件的最少序列。。。

贴代码:

<span style="font-family:Courier New;font-size:18px;">#include<stdio.h>#include<string.h>#include<stdlib.h>#include<limits.h>int n,Min,flag;int b[25];void dfs(int x,int ans){if(x == 0){flag = 1;if(ans < Min)Min = ans;return ;}for(int i=0; i<n; i++){if(b[i] <= x){dfs(x%b[i],ans+1); }}return ;}int main(){int i,T,a;scanf("%d",&T);while(T–){memset(b,0,sizeof(b));flag = 0;Min = INT_MAX;scanf("%d%d",&n,&a);for(i=0; i<n; i++){scanf("%d",&b[i]);}dfs(a,0);if(flag == 1){printf("%d\n",Min);}elseprintf("-1\n");}return 0;}</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇快速排序实现下一篇uva 10905 Children's Game(排序或者有点贪心)

顶0踩0

一个今天胜过两个明天

BC round 49 A Untitled

相关文章:

你感兴趣的文章:

标签云: