Problem_A
Problem_A
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Description
H(s)=\prod_{i=1}^{i\leq len(s)}(S_{i}-28)\ (mod\ 9973)
S_{i}代表 S[i] 字符的 ASCII 码。
请帮助度熊计算大字符串中任意一段的哈希值是多少。
Input
1\leq N\leq 1,000
1\leq len(string)\leq 100,000
1\leq a,b\leq len(string)
Output
Sample Input
2
ACMlove2015
1 11
8 10
1
testMessage
1 1
Sample Output
6891
9240
88 //这题用数学公式做,貌似很简单,但是我不会,用线段树做的,也比较快嘛。187ms AC
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; struct Tree
{
int hx;
int l,r;
}tree[]; char str[]; int build_tree(int left,int right,int k)
{
tree[k].l=left;
tree[k].r=right; if (left==right) //到子节点
{
tree[k].hx=str[left-]-;
return tree[k].hx;
} int mid=(left+right)/; tree[k].hx=( build_tree(left,mid,*k) * build_tree(mid+,right,*k+))%;
return tree[k].hx;
} int find(int left,int right,int k)
{
if( left==tree[k].l && right==tree[k].r )
return tree[k].hx; int mid=(tree[k].l+tree[k].r)/; if (left>mid) return find(left,right,*k+);
if (right<=mid) return find(left,right,*k); return ( find(left,mid,*k) * find(mid+,right,*k+) )%;
} int main()
{
int N;
int len,a,b;
while (scanf("%d",&N)!=EOF)
{
scanf("%s",str);
len=strlen(str);
build_tree(,len,); while (N--)
{
scanf("%d%d",&a,&b);
printf("%d\n",find(a,b,));
} }
return ;
}
Problem_A的更多相关文章
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
- Codeforces Round #360 div2
Problem_A(CodeForces 688A): 题意: 有d天, n个人.如果这n个人同时出现, 那么你就赢不了他们所有的人, 除此之外, 你可以赢他们所有到场的人. 到场人数为0也算赢. 现 ...
- Codeforces Round #329 div2
Problem_A(593A): 题意: 给n个单词, 每个单词由小写字母组成, 且长度<=1000. 组成一篇文章的要求是: 所有单词所用字母 <= 2 即最多只能有两个不同的字母. 求 ...
- Codeforces Round #328 div2
Problem_A(592A): 题意: 在一个8*8的棋盘上有黑白两种棋子,'W'代表白色,'B'代表黑色. 玩家A执白子,先走. 白子只能向上走,黑子只能向下走.如果有障碍物则不能走, 比如白色的 ...
- Codeforces Round #327 div2
Problem_A(591A): 题意: 有一段长度为l的路,两个人分别在两个端点,1, l. 现在已知每个人的速度为p,q. 求第一个人(初始位置在1)在他们第二次相遇的时候的位置. 当他们相遇的时 ...
- Codeforces Round #326 div2
Problem_A(588A): 题意: Duff 很喜欢吃肉, 每天都要吃,然而她又懒得下楼. 可以买很多放在家里慢慢吃.然而肉价每天都在变化,现给定一个n, 表示有多少天,然后第i天吃ai kg的 ...
- Codeforces Round #321 div2
好像前几场的题解忘记写了, Orz 状态太差, 平均出两题 都不好意思写了 , 连掉4场, 都要哭晕了. 很水的一场, 写完A B C就去睡了 D题其实不难, E题研究Ing(已用一种奇怪的姿势 ...
- Codeforces Round #316 div2
一场充满血腥hack之战!!! Problem_A: 题意: n个候选人在m个城市进行投票,每个城市选出票数最多的一个候选人为城市候选人,如果票数相同,则取编号小的候选人. 再从这m个城市候选人中选出 ...
- Codeforces Round #Pi (Div. 2)
上次比完赛就准备写了, 结果懒癌发作了, 拖到了现在. Problem_A: 题意: 在一条x轴上有n座城市, 每个城市之间的距离就是它们对应坐标的距离, 现在求出每个城市到其他城市的最近距离和最远距 ...
随机推荐
- 【Hadoop】MR 切片机制 & MR全流程
1.概念 2.Split机制 3.MR Shuffle过程 4.MR中REDUCE与MAP写作过程 5.MR全貌
- 【Hadoop】Hadoop MR 自定义分组 Partition机制
1.概念 2.Hadoop默认分组机制--所有的Key分到一个组,一个Reduce任务处理 3.代码示例 FlowBean package com.ares.hadoop.mr.flowgroup; ...
- 如何在阿里云服务器搭建FTP服务器,在本地电脑连接并操作
首先你需要有一个阿里云的ECS服务器 并且开通了公网宽带(话说也不贵,开来玩玩还是可以的,第一次买会比较便宜,第二次买1M的宽带两天是九毛多吧~) 开通了宽带之后,ECS服务器就可以上网了 如果嫌弃阿 ...
- 利用chrony和ntp搭建时间同步服务器
利用chrony和ntp搭建时间同步服务器 环境说明 系统版本 CentOS 6.9 x86_64 Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服 ...
- 【转载】Loadrunner实现Android / IOS 手机APP压力测试
随着手机APP用户量的增大,大的手机APP一般都需要进行压力测试,这几天用了loadrunner 12进行了手机APP的压力测试,整理了下,大家可以参考参考怎样给Andorid / IOS手机APP进 ...
- Oracle基础 自定义函数
一.函数 函数与存储过程相似,也是数据库中存储的已命名PL-SQL程序块.函数的主要特征是它必须有一个返回值.通过return来指定函数的返回类型.在函数的任何地方可以通过return express ...
- 斯坦福《机器学习》Lesson5感想———1、成学习算法
在前面几课里的学习算法的思路都是给定数据集以后.确定基于此数据集的最佳如果H函数,通过学习算法确定最佳如果H的各个參数,然后通过最佳如果函数H得出新的数据集的结果.在这一课里介绍了一种新的思路,它的核 ...
- vue-router $route
1.$route 除了 $route.params 外,$route 对象还提供了其它有用的信息,例如,$route.query (如果 URL 中有查询参数).$route.hash 等等
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记30 ScrollView Demo实战
在上一话中我们创建了一个通过URL读取图片的Demo,这个Demo是不能拖动和缩放的.如今给它添加选项让它能够手动切换URL,并把图片加入到ScrollView中. 向Storyboard中拖入一个s ...
- search-a-2d-matrix——二维矩阵找数
题目描述 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the ...