原题

简单的线段树问题。

对于题目中,a[i]的范围是26,我们仔细思考可以得出第0秒和第60秒是一样的(因为26的最小公倍数是60,),然后我们可以建一个线段树,里面记录0~59秒时刻开始通过这段所需要的时间。(如果一定要说这是60棵线段树也不是不可以……)

#include<cstdio>
#define N 100010
using namespace std;
int n,a[N],q,x,y;
char j;
struct hhh
{
int l,r,dt[65];
}tre[N*4]; int read()
{
int ans=0,fu=1;
char j=getchar();
for (;(j<'0' || j>'9') && j!='-';j=getchar()) ;
if (j=='-') fu=-1;
for (;j>='0' && j<='9';j=getchar()) ans*=10,ans+=j-'0';
return ans*fu;
} void build(int i,int l,int r)
{
tre[i].l=l;
tre[i].r=r;
if (l==r)
{
for (int t=0;t<60;t++)
if (!t || t%a[l]==0) tre[i].dt[t]=2;
else tre[i].dt[t]=1;
return ;
}
int mid=(l+r)>>1;
build(i*2,l,mid);
build(i*2+1,mid+1,r);
for (int t=0;t<60;t++)
tre[i].dt[t]=tre[i*2].dt[t]+tre[i*2+1].dt[(t+tre[i*2].dt[t])%60];
} void modify(int i,int x)
{
if (tre[i].l==tre[i].r && x==tre[i].l)
{
for (int t=0;t<60;t++)
if (t%a[x]==0) tre[i].dt[t]=2;
else tre[i].dt[t]=1;
return ;
}
int mid=(tre[i].l+tre[i].r)>>1;
if (x<=mid) modify(i*2,x);
else modify(i*2+1,x);
for (int t=0;t<60;t++)
tre[i].dt[t]=tre[i*2].dt[t]+tre[i*2+1].dt[(t+tre[i*2].dt[t])%60];
} int query(int i,int l,int r,int t)
{
if (tre[i].l==l && tre[i].r==r) return tre[i].dt[t%60];
int mid=(tre[i].l+tre[i].r)>>1;
if (r<=mid) return query(i*2,l,r,t);
if (l>mid) return query(i*2+1,l,r,t);
else
{
int p=query(i*2,l,mid,t);
p+=query(i*2+1,mid+1,r,(t+p)%60);
return p;
}
} int main()
{
n=read();
for (int i=1;i<=n;i++) a[i]=read();
build(1,1,n);
q=read();
while (q--)
{
j=getchar();
x=read();
y=read();
if (j=='C') a[x]=y,modify(1,x);
else printf("%d\n",query(1,x,y-1,0));
}
return 0;
}

最新文章

  1. 【Data Cluster】真机环境下MySQL数据库集群搭建
  2. 吉日嘎拉C#快速开发平台V4.0到V4.2升级记
  3. 一键安装lamp环境 centos
  4. css 去除点击之后的虚线
  5. OpenJudge 666:放苹果 // 瞎基本DP
  6. 【poj2114】 Boatherds
  7. ubuntu 设置 NAT 转发
  8. sql查询当前月内的所有日期
  9. 使用dnspod进行简单的HTTP dns解析(防劫持)
  10. Mongodb 设置密码
  11. STM32驱动TEA5767收音机模块
  12. git添加本地的项目到git远程管理仓库
  13. TCP/IP协议--TCP协议概括和TCP连接的建立和终止
  14. Excel:LOOKUP函数的经典用法
  15. python函数式编程——偏函数
  16. JavaBasic_09
  17. Tomcat8源码编译及导入Eclipse中研究
  18. 20155227《网络对抗》Exp4 恶意代码分析
  19. Repeater嵌套绑定Repeater以及内层调用外层数据
  20. spring配置数据库连接池druid

热门文章

  1. 【图论 思维】cf715B. Complete The Graph加强
  2. 【杂题总汇】HDU多校赛第十场 Videos
  3. 搞定 mybatis generator 三步走
  4. HTML语义化的重要性
  5. 图像压缩函数imagecopyresampled
  6. 笔记-爬虫-js代码解析
  7. Python数据挖掘-航空公司客户价值分析
  8. J.U.C 系列之Atomic原子类
  9. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)
  10. laravel5.5队列