hdu 1755 数学 ***
2015-07-26 22:56
274 查看
链接:点我
题解可以看这里:点我和这里
题解可以看这里:点我和这里
#include<cstdio> #include<cstring> #include<algorithm> #define N 50005 #define LL __int64 using namespace std; LL st ,total,h[15],n,flag[15]; LL Dp[105][105],m; void Dfs(int x,LL num)//递归求所有的组合 { if(x>=n) { st[total++]=num; return; } int i,k=-1; if(num==0)k=0; for(i=0;i<n;i++) { if(!flag[i] && h[i]!=k) { flag[i]=1; Dfs(x+1,num*10+h[i]); flag[i]=0; k=h[i]; } } } void make() { int i,j,k; for(i=0;i<n;i++) { flag[i]=0; scanf("%I64d",&h[i]); } sort(h,h+n);//排序 total=0; Dfs(0,0); memset(Dp,-1,sizeof(Dp));//初始化 for(i=0;i<total;i++) { for(j=1;j<=100;j++) { k=st[i]%j; if(Dp[j][k]==-1 || Dp[j][k]>st[i]) { Dp[j][k]=st[i];//预处理 } } } LL x,y; while(m--)//询问 { scanf("%I64d%I64d",&x,&y); if(y==1)printf("%I64d\n",Dp[1][0]); else { x%=y; x=y-x;//互补 if(x==y)x=0; if(Dp[y][x]==-1)printf("None\n"); else printf("%I64d\n",Dp[y][x]); } } } int main() { while(scanf("%I64d%I64d",&n,&m)==2) { make(); } return 0; }
相关文章推荐
- JAVA基础数据类型浅析
- 设计模式--备忘录模式(Memento)
- MYSQL---存储过程
- 设计模式学习
- Docker学习4 - 增删改查
- 使用regexpr()gregexpr()和函数读取字符串内的特定字符串
- swift UILabel不显示html标签
- [阿里笔试]有8只球队,采用抽签的方式随机配对,组成4场比赛。假设其中有4只强队,那么出现强强对话 (任意两只强队相遇)的概率是?
- echo的高级用法-颜色输出与光标定位
- echo的高级用法-颜色输出与光标定位 分类: Ubuntu学习笔记 2015-07-26 22:54 17人阅读 评论(0) 收藏
- Java语言基础1——基本数据类型
- zoj1241
- (三)PHP面向对象理论3---接口与反射
- 裸奔之MMU
- 带您理解SQLSERVER是如何执行一个查询的
- vim 一步一步学习Vim 全图解释
- 滑动窗口1:最大窗口子串
- React Native
- 关于Unity实现游戏录制功能的思考
- 关闭数据库时SHUTDOWN: waiting for active calls to complete.处理