C. Banh-mi
链接
[http://codeforces.com/contest/1062/problem/C]
题意
给你有n个字符(0 or 1)的串,当去某个位置时所有的剩下的位置都加上这个位置的数字,q次查询l,r区间
进行操作完,最后和是多少,对1e9+7取模?
分析
其实某个区间与01的位置没关系只与01 个数有关,如果有x个1,y个0,直接用sum前缀和统计
那么结果就是
ans=pow(2ll,sum[r]-sum[l-1],inf)-1;
ans=(ans+(ans*(pow(2ll,r-l+1+sum[l-1]-sum[r],inf)-1))%inf)%inf;
pow是快速幂
详解链接
[https://www.cnblogs.com/mch5201314/p/9523473.html]
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll inf=1e9+7;
ll sum[1000005];
ll pow(ll a,ll b,ll n){
ll ans=1;
ll base=a;
while(b){
if(b&1) ans=ans*base%n;
base=base*base%n;
b>>=1;
}
return ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll n,q;
char s[1000005];
//freopen("in.txt","r",stdin);
while(cin>>n>>q){
cin>>s+1;
memset(sum,0,sizeof(sum));
for(int i=1;i<=n;i++)
if(s[i]=='1') sum[i]=sum[i-1]+1;
else sum[i]=sum[i-1];
int l,r;
while(q--){
ll ans=0;
cin>>l>>r;
ans=pow(2ll,sum[r]-sum[l-1],inf)-1;
ans=(ans+(ans*(pow(2ll,r-l+1+sum[l-1]-sum[r],inf)-1))%inf)%inf;
cout<<ans<<endl;
}
}
return 0;
}
C. Banh-mi的更多相关文章
- bootstrap-material-design-个人总结
bootstrap-material-design-个人总结: 所需框架:1.boostrapt 3.0+2.jQuery 1.9.1+ 项目目录:Material/├── css/│ ├── boo ...
- bootstrap 20161012
栅格系统 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="u ...
- Html5导航插件,支持水平/垂直展示
/*========================= CSS STYLE=========================== */ .tabWrap {} .tabWrap ul { paddin ...
- BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)
上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert) ...
- JavaScript插件——标签页
JavaScript插件——标签页 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.html ...
- 模仿bootstrap做的 js tooltip (添加鼠标跟随功能)
主要思路: 使用jquery hover方法,当进入时显示tooltip,移出时隐藏tooltip当设定为鼠标跟随时,使用mousemove事件显示tooltip根据tooltip显示位置设置,计算t ...
- bootstrap例子
<!DOCTYPE html> <html> <head> <title>Bootstrap 101 Template</title> &l ...
- css3 animation 学习
css3中可以实现动画效果,主要是通过css3中新增加的属性(transform , transition,animation )来完成. 他们的详细解释可以参考 W3CSCHOOL 下面是效果图: ...
- Bootstrap学习js插件篇之提示框
案例 受到Jason Frame开发的jQuery.tipsy插件的启发,我们才把这个工具提示插件做的更好,而且此插件不依赖图片,只是使用CSS3来实现动画效果,并使用data属性存储标题. 将鼠标悬 ...
- Bootstrap学习js插件篇之滚动监听
1.滚动监听 案例 滚动监听插件可以根据滚动条的位置自动更新所对应的导航标记.Bootstrap中文网左侧就是一个滚动监听的例子. 代码段: <nav id="navbar-examp ...
随机推荐
- Python描述符 (descriptor) 详解
1.什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 __get__(), __set__(), 和__delete__().如 ...
- oracle启动的三个阶段
startup nomount 时,数据库状态为 started; alter database mount 时, 状态为 mounted; alter database open 时,状态为 ope ...
- 【待完成】[MapReduce_9] MapReduce 的 Shuffle 机制
0. 说明 待补充...
- 谈谈程序猿求职简历的STAR法则
最近Android/IOS的市场都有点躁动,前两天看业内几位大牛写的关于求职招聘的文章,觉得说的很有道理,暂且吸收进来,同时讲一下简历面试中使用STAR法则.我们在写简历或者面试时,最主要的一个目的, ...
- SSO阅读有感
SSO比较详细且理解.赞 链接:https://www.cnblogs.com/ywlaker/p/6113927.html
- dell t130服务器安装windowsserver2008R2系统
dell T130服务器系统是可以安装windowsserver2008R2系统. 总共8个USB端口: 后置USB:2个USB 3.0和4个USB 2.0 前置USB:1个USB 2.0和1个USB ...
- 【html5】如何让Canvas标签自适应设备
javascript方法: var oC=document.querySelectorAll('canvas')[0];oC.width=document.documentElement.client ...
- ethereum/EIPs-1078 Universal login / signup using ENS subdomains
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1078.md eip title author discussions-to status ...
- day16 Python map函数
num_l=[1,2,10,5,3,7] #lambda x:x+1 # def add_one(x): # return x+1 #lambda x:x+1 # def reduce_one(x): ...
- day14 Python函数
函数def,严格来讲有个return返回值 过程就是没有return返回值的函数 #过程 def test01(): msg = 'liuhaoran' print(msg) #函数 def test ...