1229 数字游戏

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 白银 Silver
 
 
题目描述 Description
Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间。  这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后,他叫同学随便写两个数字X和K。Lele要做的事情就是重新拼这些纸牌,组成数字 T ,并且 T + X 是 K 的正整数倍。 有时候,当纸片很多的时候,Lele经常不能在一节课之内拼出来,但是他又想知道答案,所以,他想请你帮忙写一个程序来计算答案。  
输入描述 Input Description
  1. 第一行包含两个整数 N和M(0<N<9,0<M<2000),分别代表纸片的数目和询问的数目。
  2. 第二行包含N个整数分别代表纸片上写的数字,每个数字可能取0~9。
  3. 接下来有M行询问,每个询问给出两个整数X和K(0<=x<10^9,0<K<100)。
输出描述 Output Description
  1. 对于每次询问,如果能够用这些纸片拼出符合答案的T,就输出结果T。如果有多个结果,就输出符合要求的最小的T。
  2. 如果不能拼出,就输出"None"。
样例输入 Sample Input

4 3

1 2 3 4

5 7

33 6

12 8

样例输出 Sample Output

1234

None

1324

数据范围及提示 Data Size & Hint

传送门  点此展开

满分做法是全排列,也不知为啥这题数据能让9!*2000过,可能出题人比较良心吧。。

代码如下

  1. #include <algorithm>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <string>
  5. #include <cstdio>
  6. #include <cmath>
  7. #define INF 1111111111
  8. using namespace std;
  9.  
  10. bool f;
  11. int minn=INF,ans,s[],z,q,maxn,cs[],cs1[],b,t,r,w,x,k,a,n,m,i,j;
  12. int main()
  13. {
  14. ios::sync_with_stdio(false);
  15. int c;
  16. cin >> n >> m;
  17. int p;
  18. for(i=;i<n;++i)
  19. {
  20. cin>>p;
  21. s[i]=p;
  22. }
  23. for(j=;j<m;++j)
  24. {
  25. cin>>x>>k;
  26. f=false;
  27. minn=INF;
  28. do{
  29. int v=n;
  30. ans=;
  31. for(i=;i<n;++i)
  32. {
  33. if(i==) ans=s[i];
  34. else ans=ans*+s[i];
  35. }
  36. if((ans+x)%k==)
  37. {
  38. minn=min(minn,ans);
  39. f=true;
  40. }
  41. } while (next_permutation(s,s+n));
  42. if(!f)
  43. cout<<"None"<<endl;
  44. else cout<<minn<<endl;
  45. }
  46. }

80分暴力 每个大于10^(n-1)小于10^(n-1)*maxn倍数进行枚举 再看看出现次数是否一致

仅供参考,最后一点跑1分钟能跑出来。。

代码

  1. #include <iostream>
  2. #include <cstring>
  3. #include <string>
  4. #include <cstdio>
  5. #include <cmath>
  6.  
  7. using namespace std;
  8.  
  9. bool f;
  10. char s[];
  11. int z,q,maxn,cs[],cs1[],b,t,r,w,x,k,a,n,m,i,j;
  12. int Pd(int k)
  13. {
  14. memset(cs1,,sizeof(cs1));
  15. sprintf(s,"%d",k);
  16. for (j = ; j < strlen(s); ++j)
  17. cs1[s[j]-]++;
  18. for(j = ; j<= ;++j)
  19. {
  20. if(cs1[j]!=cs[j]) return ;
  21. }
  22. return ;
  23. }
  24. int main()
  25. {
  26. ios::sync_with_stdio(false);
  27. int c;
  28. cin >> n >> m;
  29. z = pow(,n-);
  30. for (i = ;i < n ;++i)
  31. {
  32. cin >> a;
  33. cs[a]++;
  34. maxn = max(maxn,a);
  35. }
  36. b = z * (maxn+);
  37. for (i = ;i < m ;++i)
  38. {
  39. f=false;
  40. cin >> x >> k;
  41. q=z/k;
  42. int c=b/k+;
  43. while(q<c)
  44. {
  45. ++q;
  46. t=k*q-x;
  47. if(Pd(t))
  48. {
  49. f=true;
  50. cout << t <<endl;
  51. break;
  52. }
  53. }
  54. if(!f)
  55. {
  56. cout << "None" << endl;
  57. }
  58. }
  59. }

点击展开

Codevs 1229 数字游戏的更多相关文章

  1. codevs 1229 数字游戏(可重集的全排列)

    传送门 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间.  这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后 ...

  2. 【wikioi】1229 数字游戏(dfs+水题)

    http://wikioi.com/problem/1229/ 赤裸裸的水题啊. 一开始我认为不用用完全部的牌,以为爆搜会tle.. 可是我想多了. 将所有状态全部求出,排序后暴力判断即可. (水题有 ...

  3. codevs 1085 数字游戏 dp或者暴搜

    1085 数字游戏 2003年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单 ...

  4. Codevs 1085 数字游戏

    1085 数字游戏 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 丁丁最近沉迷于一个数字游戏之中 ...

  5. codevs1229 数字游戏

    1229 数字游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解    

  6. T1229 数字游戏 codevs

    http://codevs.cn/problem/1229/ 题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间.  这个游戏是这样的,首先,他拿出 ...

  7. 数字游戏(codevs 1085)

    题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共 ...

  8. 1861 奶牛的数字游戏 2006年USACO

    codevs——1861 奶牛的数字游戏 2006年USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解       题目描述 Descript ...

  9. C语言猜数字游戏

    猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...

随机推荐

  1. iOS 跳转到系统的设置界面

    跳到健康设置   上网找了一下  你会发现很难找到.代码如下  不信你试试 . NSURL *url = [NSURL URLWithString:@"prefs:root=Privacy& ...

  2. 【代码笔记】iOS-看图听声音

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> #import <AVFoundation/AVFo ...

  3. NSCache详解

    NSCache---详解 NSCache: NSCache是苹果官方提供的缓存类,在AFNetworking中,使用它来进行图片缓存. NSCache是线程安全的,在多线程操作中,不需要对Cache进 ...

  4. eclipse maven 插件 安装 和 配置

    eclipse 安装插件的方式最常见的有两种: 离线安装,用 link 的方式来安装,这种方式可拔性更好,可以随时将插件插上和拔下,非常方便.  link 离线安装 eclipse maven 插件 ...

  5. 布局 position

    position : 设置定位方式 跟『定位』相关的有一些属性,最重要的一个是『position』,它主要是设置『定位方式』. 而定位方式最重要的是设置『参照物』. 配合 position 使用的有这 ...

  6. php 操作mysql 分表的一种方法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARUAAAHXCAIAAAAdrFkKAAAgAElEQVR4nOyd61sTx9//+4fcj+6H95

  7. 组内Linq培训记录

    注: 由于该培训是在组内分享,先写成了Word,而word中的代码都以截图方式呈现了,而在博客园不能很方便的粘贴截图进来,所以我用插入代码的方式加进来,如果文中说“如下图”或“如下图代码”,那么就直接 ...

  8. VC对ScrollView的调整

    VC对ScrollView的调整 automaticallyAdjustsScrollViewInsets automaticallyAdjustsScrollViewInsets是ViewContr ...

  9. IO流05--毕向东JAVA基础教程视频学习笔记

    Day20 10 创建java文件列表11 Properties简述12 Properties存取13 Properties存取配置文件14 Properties练习15 PrintWriter16 ...

  10. python写的分析mysql binlog日志工具

    因为数据库增删改突然暴增,需要查询是那些表的操作特别频繁,写了一个用来分析bin-log的小工具,找出增删改查的表,并按照操作次数降序排列,以下是代码: 1 2 3 4 5 6 7 8 9 10 11 ...