hdu5339&bestcoder(#49)a题
2015-08-03 21:11
274 查看
题目大意:给定一个序列,要求从这个序列中挑出k个数字,使得n%a1%a2%a3....=0(顺序随你意)。求k的最小值。
解题思路:从大到小排个序(小的摸完了,大的就不能摸了),然后在枚举。
解题思路:从大到小排个序(小的摸完了,大的就不能摸了),然后在枚举。
#include<cstdio> #include<algorithm> #include<cstring> #include<iostream> using namespace std; const int maxn=20+5; int b[maxn],t,n,a; int ans; int cmp(int a,int b) { return a>b; } void solve(int num,int cnt,int s) { if(num>n) return; int tmp; tmp=s%b[num]; if(cnt>ans) return; if(tmp==0) {ans=min(ans,cnt+1);return;} // cout<<num<<" "<<cnt<<" "<<s<<" "<<tmp<<endl; solve(num+1,cnt+1,tmp); solve(num+1,cnt,s); } int main() { scanf("%d",&t); while(t--) { ans=(1<<30); scanf("%d%d",&n,&a); for(int i=1;i<=n;i++) scanf("%d",b+i); sort(b+1,b+n+1,cmp); solve(1,0,a); if(ans!=(1<<30)) printf("%d\n",ans); else printf("-1\n"); } }
相关文章推荐
- Hdu 1241 Oil Deposits
- IC验证平台STE_V2.1之硬件设计
- Remove Element
- hdu1241详解 Java广搜搞定
- 黑马程序员——while语句+for语句+for嵌套练习-第3天
- Android项目导入出错
- 大学里
- PreparedStatement是如何防止SQL注入的
- 基本组件之RadioGroup与CheckBox
- 如何给网页加上标题和logo?
- 最短路径—Dijkstra算法和Floyd算法
- VMware vSphere 创建虚拟机时SCSI适配器的选择
- HDOJ 1087 Super Jumping! Jumping! Jumping!(LIS变形)
- Search in Rotated Sorted Array
- poj-Dividing问题
- hdoj 1005 Number Sequence
- 九度oj 二叉树遍历 题目1184
- arm ubuntu 按键关机的实现
- hdu5336&15年多校集训(4)j题(bfs+模拟)
- 用两个栈实现一个队列