【题目描述】

在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时
 间学校就此事做了全校通报. 现已知在当天校会时间有总共N个同学听到了有关Bugall的处分决定.
 
 Bugall同学在铁一有M个朋友,这M个人中有的可能听到了当天的处分决定,有的可能没
 有听到,现在Bugall同学想知道他有几个朋友听到了当天的处分通报.

【输入格式】

第一行为一个整数N,从第2行到N+1行,每行用一个长度不超过200的字符串表示
 一个人的名字.
  第N+2行为一个整数M,从第N+3行到N+M+2行,每行用一个长度不超过200的字符
 串表示Bugall同学一个朋友的名字.

【输出格式】

输出有几个Bugall同学的铁一朋友在当天的校会时间听到了Bugall处分通报.保证不重名。

【样例输入】

3
Dazui
Erge
Dapigu
2
Varpro
Erge

【样例输出】

1
/*跑的略慢的版本,用链表写的*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define lon long long
#define mod 13212377
#define N 80010
using namespace std;
int head[mod+];int n,cnt;
char s1[];string s2;
struct node{
int pre;string ss;
};node e[N];
lon poww(lon a,lon b){
lon base=a,r=;
while(b){
if(b&)r*=base;
base*=base;
r%=mod;
base%=mod;
b>>=;
}
return r;
}
void add(){
lon tot=(s2[]-'A'+);int len=s2.length();
for(int i=;i<len;i++){
tot+=(s2[i]-'a')*poww(,i);
tot%=mod;
}
e[++cnt].ss=s2;
e[cnt].pre=head[tot];
head[tot]=cnt;
}
bool find(){
lon tot=(s2[]-'A'+);int len=s2.length();
for(int i=;i<len;i++){
tot+=(s2[i]-'a')*poww(,i);
tot%=mod;
}
for(int i=head[tot];i;i=e[i].pre)
if(e[i].ss==s2)return true;
return false;
}
int main(){
freopen("mtest.in","r",stdin);
freopen("mtest.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s",s1);
int len=strlen(s1);s2="";
for(int j=;j<len;j++)
s2+=s1[j];
add();
}
scanf("%d",&n);int ans=;
for(int i=;i<=n;i++){
scanf("%s",s1);
int len=strlen(s1);s2="";
for(int j=;j<len;j++)
s2+=s1[j];
if(find())ans++;
}
printf("%d",ans);
return ;
}
/*
今天听YLF大神说了一种从来没听说过的hash的实现方式:自然溢出。
就是让系统自动对用一个大数对我们的数据取模,虽然可能会发生hash碰撞,但概率很小,而且很快。
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define P 26
#define p 17
#define N 80010
#define mod 13457
using namespace std;
char s[];int head[mod+],n,cnt;
struct node{
int v,pre,sum;
};node e[N];
int Has(){
int len=strlen(s),tot=s[]-'A'+;
for(int i=;i<len;i++)
tot=tot*P+s[i]-'a'+;
return tot;
}
int has(){
int len=strlen(s),tot=s[]-'A'+;
for(int i=;i<len;i++)
tot=(tot*p+s[i]-'a'+)%mod;
return tot;
}
void add(){
int Ha=Has();
int ha=has();
if(ha<)ha=-ha;
for(int i=head[ha];i;i=e[i].pre){
if(e[i].v==Ha){
e[i].sum++;return;
}
}
++cnt;
e[cnt].v=Ha;
e[cnt].sum++;
e[cnt].pre=head[ha];
head[ha]=cnt;
}
int query(){
int Ha=Has();
int ha=has();
if(ha<)ha=-ha;
for(int i=head[ha];i;i=e[i].pre){
if(e[i].v==Ha)return e[i].sum;
}
return ;
}
int main(){
freopen("mtest.in","r",stdin);
freopen("mtest.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s",s);
add();
}
scanf("%d",&n);int ans=;
for(int i=;i<=n;i++){
scanf("%s",s);
ans+=query();
}
printf("%d",ans);
return ;
}

月考(cogs 1176)的更多相关文章

  1. cogs 1176. [郑州101中学] 月考

    1176. [郑州101中学] 月考 ★   输入文件:mtest.in   输出文件:mtest.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 在上次的月考中Bug ...

  2. cogs 1176. [郑州101中学] 月考 Set 做法

    1176. [郑州101中学] 月考 ★★☆   输入文件:mtest.in   输出文件:mtest.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 在上次的月考中B ...

  3. cogs 1176. [郑州101中学] 月考 Map做法

    1176. [郑州101中学] 月考 ★★☆   输入文件:mtest.in   输出文件:mtest.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 在上次的月考中B ...

  4. cogs 1176. [郑州101中学] 月考 字典树

    1176. [郑州101中学] 月考 ★★☆   输入文件:mtest.in   输出文件:mtest.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 在上次的月考中B ...

  5. COGS——C1176. [郑州101中学] 月考

    http://cogs.pro/cogs/problem/problem.php?pid=1176 [题目描述] 在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时 间 ...

  6. C#学习笔记(二十):C#总结和月考讲解

    m1w1d2_console_variable_constant 输入Console.WriteLine(); 输出Console.ReadLine(); 快捷键 折叠代码:快捷键“Ctrl+ K + ...

  7. S5第一次月考

    # Python五期月考一 # 1 介绍 # 满分100分,90分及格 # # 考试范围: # 1.Python语法 # 2.数据类型 # 3.流程控制 # 4.函数 # 5.模块 # # 考试时间: ...

  8. 洛谷 P4256 公主の#19准备月考

    题目背景 公主在玩完游戏后,也要月考了.(就算是公主也要月考啊QWQ) 题目描述 公主的文综太差了,全校排名1100+(全校就1100多人),她分析了好久,发现她如果把所有时间放在选择题上,得分会比较 ...

  9. defender 月考总结

    今天是2019年5月28日,昨天月考了,也是C**生日.昨天考完之后,还是那种考完试的释然感.目前,已经批出来了数学.英语.物理三门学科的成绩,语文还没有批出来.应该明天就能够批出来吧.现在趁着休息, ...

随机推荐

  1. java之Timer

    一.Java2的开发包中提供了一种很好使用的线程功能:你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其每隔一段时间执行.你也可以用Thread来完成,但利用Timer与Timer ...

  2. N-Queens leetcode

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  3. Mac OS X 11以上系统的Rootless机制问题

    由于项目紧,系统一直停留在10版本,最近清闲之后,第一件事就是升级了系统,到11El Capitan版本. 本来想着随便升级了,可能有好玩的东东,结果好玩的木有看见,项目开发环境崩溃了,何其衰耶? 废 ...

  4. PHPCMS系统使用的弹出窗口插件artDialog

    来源: http://aui.github.io/artDialog/doc/index.html  (官方) http://lab.seaning.com/ http://www.mb5u.com/ ...

  5. Android手机的上网功能需要用到APN(网络接入点)的设置 电信

    手机apn出问题了,上不网 电信天翼: 我们经常使用的APN有三个,分别是NET网络设置.WAP网络设置和彩信网络设置. 1.NET网络设置 名称:CTNET APN:#777 用户名:ctnet@m ...

  6. 【转】AspNetPager分页控件用法

    AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首先到www.w ...

  7. python\c交互学习网站手机

    http://use-python.readthedocs.org/zh_CN/latest/interact_with_other_language.html https://www.zhihu.c ...

  8. [POJ3096]Surprising Strings

    [POJ3096]Surprising Strings 试题描述 The D-pairs of a string of letters are the ordered pairs of letters ...

  9. maven项目部分知识

    1.maven项目在pom.xml中用add dependencies加入jar包,搜索不到jar包的解决方案: Window  --> Show View --> Other输入mave ...

  10. 校赛E题递归形式

    #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; ][]; ,,, ...