迷之好奇

Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

FF得到了一个有n个数字的集合。不要问我为什么,有钱,任性。

FF很好奇的想知道,对于数字x,集合中有多少个数字可以在x前面添加任意数字得到。

如,x = 123,则在x前面添加数字可以得到4123,5123等。

输入

 多组输入。

对于每组数据

首先输入n(1<= n <= 100000)。

接下来n行。每行一个数字y(1 <= y <= 100000)代表集合中的元素。

接下来一行输入m(1 <= m <= 100000),代表有m次询问。

接下来的m行。

每行一个正整数x(1 <= x <= 100000)。

输出

 对于每组数据,输出一个数字代表答案。

示例输入

3
12345
66666
12356
3
45
12345
356

示例输出

1
0
1

算法分析:数据量太大,常规的算法必然超时,并且那样做我个人感觉描述起来相当麻烦。

换个想法:比如要问45 在集合中有那些数字的尾部是45,只需要找到那些数对100取余==45就行了。但是为了避免

  超时,需要在一开始时,对集合的这个数就进行从10 100 ,,,,的取余,记住不对比本身大的数取余!

   哈希数组初始化为0,然后取余出来的dd, 进行f[dd]++,说明dd这个数有f[dd]个数字的尾部是dd !

   但注意这类数据:  例如:3000005

                                  对10取余 ==5;

                                  对100取余==5;

                                 对1000取余==5; 但是对于3000005这个数只能加一次

代码:

       

#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <ctype.h> using namespace std; int f[100001]; int main()
{
int n;
int i, j;
int m;
int x;
int dd, ff, gg;
int flag;
int w; while(scanf("%d", &n)!=EOF)
{
memset(f, 0, sizeof(f));
for(i=0; i<n; i++)
{
scanf("%d", &ff );
if(ff>10)
{
gg=10;
dd=ff%gg;
flag=dd;
w=1; while( dd<ff )
{
if(w==1)
{
f[dd]++;
gg=gg*10;
dd=ff%gg;
w=0;
}
else if(w==0)
{
if(flag==dd)
{
gg=gg*10;
dd=ff%gg;
}
else
{
f[dd]++;
flag=dd;
gg=gg*10;
dd=ff%gg;
}
}
//f[dd]++;
}
}
} scanf("%d", &m);
for(i=0; i<m; i++)
{
scanf("%d", &x);
printf("%d\n", f[x] );
}
}
return 0;
}

 

SDUT oj 选拔赛1 迷之好奇的更多相关文章

  1. SDUT OJ 迷之好奇 (字典树 )

    迷之好奇 Time Limit: 2000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description FF得到了一个有n个数字的集 ...

  2. SDUT OJ 2607

    /*http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607*/ 题目大意:给出一个字符串,求出里 ...

  3. SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2->sqrt(n) 即可 )

    亲和数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对. ...

  4. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  5. SDUT OJ 学密码学一定得学程序

    学密码学一定得学程序 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description ...

  6. 【离散数学】 SDUT OJ 传递闭包 && memset 使用注意事项

    传递闭包 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知有n头牛,m次战斗关系, ...

  7. 有待总结的KMP算法 sdut oj 2463 学密码学一定得学程序

    学密码学一定得学程序 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 曾经,ZYJ同学非常喜欢密码 学.有一天,他发现了一个很长很 ...

  8. SDUT OJ 2783 小P寻宝记

    #include<iostream> #include<memory.h> #define N 10020 using namespace std; int dp[N],pi[ ...

  9. SDUT oj 3005 打怪升级(内存搜索)

    当比赛一直纠缠骑2如何做一个非常大的数量,数组不开啊...后来他们发现自己很傻啊,该数不超过最大10什么,这个上限就是力量100什么.. .. 其它的就是记忆化搜索啊,还有就是加一点力量的瓶子当时就要 ...

随机推荐

  1. android悬浮窗口的一些说明

    1.xml文件里的权限申请 <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" ...

  2. ObjectDataSource配合存储过程(采用数据集)的使用(删除可以解决,但是编辑出错好像它的方法也无法解决

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] ObjectDataSource是比较有意思的一个东西 通过在网络上遍访各位高手,终于自己有了一些心得体会。现总结 ...

  3. Mybatis resultMap空值映射问题

    参考博客:https://www.oschina.net/question/1032714_224673 http://stackoverflow.com/questions/22852383/how ...

  4. Lucene 6.5.0 入门Demo(2)

    参考文档:http://lucene.apache.org/core/6_5_0/core/overview-summary.html#overview.description 对于path路径不是很 ...

  5. centos6安装概述

    1.1.选择安装类型:[Install or upgrade an existing system]安装或升级现有系统 1.2.介质校验:[Skip]跳过介质校验,校验时间较长 1.3.语言选择:[E ...

  6. bzoj 4457: 游戏任务

    4457: 游戏任务 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 128  Solved: 71[Submit][Status][Discuss] D ...

  7. HDU1800 Flying to the Mars 【贪心】

    Flying to the Mars Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. Android——ListView优化

    1.ListView基本概念 列表显示需要三个元素: ListView:用来展示列表的View. 适配器:用来把数据映射到ListView上 数据:具体的将被映射的字符串,图片或基本组件 适配器类型分 ...

  9. C++对象模型——Default Constructor的建构操作(第二章)

    第2章    构造函数语意学 (The Semantics of Constructor) 关于C++,最常听到的一个抱怨就是,编译器背着程序猿做了太多事情.Conversion运算符就是最常被引用的 ...

  10. bzoj 1030: [JSOI2007]文本生成器 (ac自己主动机上的dp)

    1030: [JSOI2007]文本生成器 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2635  Solved: 1090 [id=1030&qu ...