博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5339 递归枚举
阅读量:5077 次
发布时间:2019-06-12

本文共 1028 字,大约阅读时间需要 3 分钟。

只有20个点,从大到小排序然后枚举即可。这里做了一个优化,不模大于自己的数,因为这是徒劳的,我们要求的是最小的r。

注意:不排序就枚举是错误的,想一想,为什么。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 const int INF = 99; 8 const int N = 20; 9 int x[N];10 int t, n, a, r;11 12 bool cmp( int p, int q )13 {14 return p > q;15 }16 17 void dfs( int d, int cur, int len )18 {19 if ( d == 0 )20 {21 r = min( r, len );22 return ;23 }24 if ( cur == n ) return ;25 if ( d >= x[cur] ) dfs( d % x[cur], cur + 1, len + 1 ); 26 dfs( d, cur + 1, len );27 }28 29 int main ()30 {31 cin >> t;32 while ( t-- )33 {34 cin >> n >> a;35 for ( int i = 0; i < n; i++ )36 {37 cin >> x[i];38 }39 sort( x, x + n, cmp );40 r = INF;41 dfs( a, 0, 0 );42 if ( r == INF ) r = -1;43 cout << r << endl;44 }45 return 0;46 }

 

转载于:https://www.cnblogs.com/huoxiayu/p/4700139.html

你可能感兴趣的文章
从Windows迁移SQL Server到Linux
查看>>
IOS开发之实现App消息推送
查看>>
Workspace defines a VM that does not contain a valid jre/lib/rt.jar: C:\Program Files\Java\jre7
查看>>
java多线程有哪些实际的应用场景?
查看>>
动态分配内存-realloc
查看>>
PHP 程序员学数据结构与算法之《栈》
查看>>
Three typical types of Data Mining applications
查看>>
通过rsync+inotify实现数据实时备份
查看>>
四种第三方登录(附源码)(转)
查看>>
20145305 《信息安全系统设计基础》第12周学习总结
查看>>
【OpenCV应用笔记】(彩色/灰度)图像像素值读取并保存到txt文件
查看>>
一句话输出NGINX日志访问IP前十位排行
查看>>
Linux SendMail 使用外部SMTP服务发送邮件
查看>>
thinkPHP5.0 获取域名
查看>>
PKU P2411 Mondriaan's Dream
查看>>
策略模式
查看>>
分布式Hadoop安装(一)
查看>>
204. Count Primes
查看>>
Laravel 下生成验证码的类
查看>>
Linux基础命令---cal
查看>>