个人感受:打了三个小时不到的第一题,然后也就没有多少时间去搞第二题了,特别是第二题还看到了期望这样的东西,这个难以理解,第三题的树分治,myx大佬说50分好拿,但是我觉得也挺难拿的。

单词检索

时间限制: 1 Sec  内存限制: 128 MB
提交: 671  解决:
105
[提交][状态][讨论版]

题目描述

小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务。

由于学校需要一些材料,校长需要在文章中检索一些信息。校长一共给了小可可N篇文章,每篇文章为一个字符串。现在,校长需要他找到这样的单词,它至少在这N篇文章中的M篇文章里出现过,且单词长度为L。可是,工作量十分庞大,但校长又急需小可可完成这项任务。

现在他向你求助,需要你编写程序完成这项艰巨的任务。

输入

第1行3个正整数N,M,L,表示文章的数目,单词至少出现在M篇文章中和每个单词的长度。

接下来N行,每行一个字符串,表示一篇文章。

输出

仅一行,表示满足检索条件的单词数。

样例输入

3 2 2
noip
istudycpp
imacppstudent

样例输出

5

对于20%的数据有1≤N,M≤10;

对于100%的数据有1≤N,M≤2000,L≤1000。每篇文章长度不大于1000,均有小写字母组成。

这道题就是一个hash映射,一开始想了trie树和kmp,但是trie树的空间是真的大,指数级别增长还得研究过才行,这里用到了一个

非常重要的结论:一次解决一O(N)的时间求出每段连续子串的hash值,1----j,2----j+1,,3----j+2 ......就是1*k^t%MOD对答案hash的贡献值是确定的,那就直接可以了,在在答案中减去就可以了。

 #include<cstdio>
 #include<cmath>
 #include<algorithm>
 #include<cstring>
 #include<iostream>
 #include<map>
 using namespace std; 

 ; 

 ;
 long long he;
 map<long long,int>flag;
 map<long long,int>last;
 ];
 ];
 int main()
 {
     scanf("%d%d%d",&n,&m,&l);
     he=;
     ;i<l;i++)
         he=(he*)%MOD;
     ;i<=n;i++)
     {
         scanf("%s",s);
         int len=strlen(s);
         ;
         ;j<l-;j++)  x=(x*+(s[j]-'a'))%MOD;
         ;j<len;j++)
         {
             x=(x*+s[j]-'a')%MOD;
             if (!flag[x])
             {
                 a[++a_zhi]=x;
                 flag[x]++;
                 last[x]=i;
             }
             else if (last[x]!=i) flag[x]++,last[x]=i;
             x=(x-(s[j-l+]-'a')*he+MOD)%MOD;
         }
     }
     ;
     ;i<=a_zhi;i++)
         if (flag[a[i]]>=m) ans++;
     printf("%d\n",ans);
 } 

无聊的游戏

时间限制: 1 Sec  内存限制: 256 MB  Special Judge
提交:
213  解决: 42
[提交][状态][讨论版]

题目描述

学校的运动会开始了,体能很菜的小可可没报任何比赛项目,于是和同学们玩一个十分无聊的游戏。

游戏在一个由n*n个方格组成的正方形棋盘上进行,首先在每个方格上均匀随机地填入1到m之间的正整数(每个方格填的数均不同),然后小可可均匀随机地选出k个1到m的数字(可能选的数不在棋盘上),把它们出现在棋盘上的方格涂黑,设有R行被整行涂黑,有C列被整列涂黑,小可可便可以得到2^(R+C)分。

现在小可可想知道他的期望得分是多少,你能帮助他吗?

输入

第一行包含三个正整数n,m,k。

输出

仅一行包含一个实数,为期望得分,如果答案>10^99,就输出10^99,输出被认为正确当且仅当你的输出与标准输出的相对误差不超过10-6

样例输入

1 2 1

样例输出

2.5

提示

【数据范围】

对于30%的数据,2≤n≤5

对于60%的数据,2≤n≤10,m≤200

对于100% 的数据,2≤n≤300

这道题是非常不错的,我准备再开一篇blog来写这道题,写的是后是0分。

 #include<cstdio>
 #include<algorithm>
 #include<iostream>
 #include<cmath>
 #include<cstring>
 using namespace std;
 ;

 int n,m,k;
 double f[N],g[N*N],ans;

 int main()
 {
     scanf("%d%d%d",&n,&m,&k);
     ]=;i<=n;i++)
         f[i]=f[i-]/i*(n-i+);
     ]=;i<=m;i++)
         g[i]=g[i-]/(m-i+)*(k-i+);
     ;i<=n;i++)
         ;j<=n;j++)
         {
             int t=(i+j)*n-i*j;
             if(t>k) continue;
             ans+=f[i]*f[j]*g[t];
         }
     ans=ans>1e99?1e99:ans;
     printf("%lf",ans);
 }

NOIP2017SummerTraining0712的更多相关文章

随机推荐

  1. 在ubantu上安装hive

    上次我们在ubantu上安装了hadoop,那我们现在再进一步,开始我们的学习之旅--hive板块吧! 第一步:准备! 软件: I.一个搭建好的hadoop环境 II.hive的bin文件(前往apa ...

  2. 深度学习框架-caffe安装-环境[Mac OSX 10.12]

    深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...

  3. Haproxy基于ACL做访问控制

    author:JevonWei 版权声明:原创作品 haproxy配置文档 https://cbonte.github.io/haproxy-dconv/ 基于ACL做访问控制(四层代理) 网络拓扑 ...

  4. Java+大数据开发——Hadoop集群环境搭建(二)

    1. MAPREDUCE使用 mapreduce是hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序 2. Demo开发--wo ...

  5. 关于Meta标签中format-detection属性及含义

    一.Meta标签中的format-detection属性及含义 意为:格式检测 或许你会有这样的经历:当你在制作手机端的页面中,点击了没有加任何链接的格式的数字时,这时手机会进行自动拔号提示操作! 禁 ...

  6. js实现换肤效果

    一,js换肤的基本原理 基本原理很简单,就是使用 JS 切换对应的 CSS 样式表文件.例如导航网站 Hao123 的右上方就有网页换肤功能.除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 ...

  7. iOS ipa包瘦身------删除无用图片资源

         随着客户端业务的增多和业务的更新,App包大小越来越大,优化包大小是迫在眉睫,客户端需要优化的地方也有很多,本期主要讲如何查找无用图片并且删除无用图片的方法.      方案1:(暴力方法) ...

  8. Mac环境下mysql初始化密码问题--If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.

    个人在Mac上操作数据库,遇到的启动数据库问题的简单记录 1.苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) 2.进 ...

  9. 201521123091 《Java程序设计》第13周学习总结

    Java 第十三周总结 第十三周的作业. 目录 1.本章学习总结 2.Java Q&A 3.码云上代码提交记录及PTA实验总结 4.课后阅读 1.本章学习总结 1.1 以你喜欢的方式(思维导图 ...

  10. java记事本1.2版

    功能:实现了新建,打开,保存,退出,复制,剪切,粘贴等功能 效果图: