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过,可能出题人比较良心吧。。

代码如下

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#define INF 1111111111
using namespace std; bool f;
int minn=INF,ans,s[],z,q,maxn,cs[],cs1[],b,t,r,w,x,k,a,n,m,i,j;
int main()
{
ios::sync_with_stdio(false);
int c;
cin >> n >> m;
int p;
for(i=;i<n;++i)
{
cin>>p;
s[i]=p;
}
for(j=;j<m;++j)
{
cin>>x>>k;
f=false;
minn=INF;
do{
int v=n;
ans=;
for(i=;i<n;++i)
{
if(i==) ans=s[i];
else ans=ans*+s[i];
}
if((ans+x)%k==)
{
minn=min(minn,ans);
f=true;
}
} while (next_permutation(s,s+n));
if(!f)
cout<<"None"<<endl;
else cout<<minn<<endl;
}
}

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

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

代码

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath> using namespace std; bool f;
char s[];
int z,q,maxn,cs[],cs1[],b,t,r,w,x,k,a,n,m,i,j;
int Pd(int k)
{
memset(cs1,,sizeof(cs1));
sprintf(s,"%d",k);
for (j = ; j < strlen(s); ++j)
cs1[s[j]-]++;
for(j = ; j<= ;++j)
{
if(cs1[j]!=cs[j]) return ;
}
return ;
}
int main()
{
ios::sync_with_stdio(false);
int c;
cin >> n >> m;
z = pow(,n-);
for (i = ;i < n ;++i)
{
cin >> a;
cs[a]++;
maxn = max(maxn,a);
}
b = z * (maxn+);
for (i = ;i < m ;++i)
{
f=false;
cin >> x >> k;
q=z/k;
int c=b/k+;
while(q<c)
{
++q;
t=k*q-x;
if(Pd(t))
{
f=true;
cout << t <<endl;
break;
}
}
if(!f)
{
cout << "None" << endl;
}
}
}

点击展开

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打包ipa的四种实用方法(.app转.ipa)

    总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选 ...

  2. art.dialog.art 中,将子页面窗口中的值传递给父框架中

    artDialog.open.origin.document.getElementById('父元素ID').value=document.getElementById('子页面元素ID').valu ...

  3. 【开源项目SugarSite】ASP.NET MVC+ Layui+ SqlSugar+RestSharp项目讲解

    SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 ...

  4. 简单看看这两个类 String和StringBuilder

    我记得以前在园子里面讨论这两个类的文章有很多很多,并且还拿出了很多的测试报告,在什么情况下,谁比谁快,在什么情况下,该用谁 不该用谁等等这些,我这里就不比较了,我就简单看看他们里面的内部实现,那就先看 ...

  5. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  6. PHP 类型判断和NULL,空值检查

    PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤. 类型检查 从PHP5开始,PHP允许对函数的参数进行类型约束,即可以约束参数的 ...

  7. 《Java JDK7 学习笔记》课后练习题2

    1.如果在hello.java中撰写以下的程序代码: public class Hello {     public static dmain(String[]args) {          Sys ...

  8. Android控件开发之Chronometer(转)

    (转自:http://blog.csdn.net/sun6255028/article/details/6688349) Chronometr是一个简单的定时器,你可以给它一个开始时间,并以此定时,或 ...

  9. 探究C语言中的前++和后++

    小波带您探究c语言中的前++与后++: 欢迎吐槽,欢迎加QQ463431476. 欢迎关注!  现在来探究: 咱们先看第一个 i被赋值0,i++(后++)并没有输出1.   现在i被赋值0,++i,也 ...

  10. NOIP2009 提高组T3 机器翻译 解题报告-S.B.S

    题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...