2013年 ACMICPC 杭州赛区H题
思路:树状数组统计。待验证,不知道是否对。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#define lowbit(x) (x&(-x))
#define Maxn 200010
using namespace std;
int C[Maxn],vi[Maxn],pre[Maxn],n,num[Maxn],ans[Maxn],ov[Maxn];
struct Qu{
int l,r,i;
}q[Maxn];
int cmp(Qu a,Qu b)
{
return a.r<b.r;
}
void update(int pos,int val)
{
while(pos){
C[pos]+=val;
pos-=lowbit(pos);
}
}
int sum(int pos)
{
int s=;
while(pos<=n){
s+=C[pos];
pos+=lowbit(pos);
}
return s;
}
int main()
{
int m,i,j;
while(scanf("%d%d",&n,&m),n||m){
memset(C,,sizeof(C));
memset(vi,,sizeof(vi));
memset(pre,,sizeof(pre));
memset(ov,,sizeof(ov));
for(i=;i<=n;i++)
scanf("%d",num+i);
for(i=;i<=m;i++){
scanf("%d%d",&q[i].l,&q[i].r);
q[i].i=i;
}
sort(q+,q++m,cmp);
int r=,temp,pos;
for(i=;i<=n;i++){
update(i,);
pos=;
for(j=;j*j<=num[i];j++){
if(num[i]%j) continue;
if(!vi[pre[j]]&&pre[j]) {
update(pre[j],-);
if(ov[pre[j]])
update(ov[pre[j]],);
vi[pre[j]]=;
}
pos=max(pos,pre[j]);
pre[j]=i;
if(j*j==num[i]) continue;
temp=num[i]/j;
if(!vi[pre[temp]]&&pre[temp]){
update(pre[temp],-);
if(ov[pre[temp]])
update(ov[pre[temp]],);
vi[pre[temp]]=;
}
pos=max(pos,pre[temp]);
pre[temp]=i;
}
if(!vi[pre[num[i]]]&&pre[num[i]]){
update(pre[num[i]],-);
if(ov[pre[num[i]]])
update(ov[pre[num[i]]],);
vi[pre[num[i]]]=;
}
pos=max(pos,pre[num[i]]);
pre[num[i]]=i;
if(pos){
update(pos,-);
ov[i]=pos;
}
while(r<=m&&q[r].r==i){
ans[q[r].i]=sum(q[r].l);
r++;
}
}
for(i=;i<=m;i++)
printf("%d\n",ans[i]);
}
return ;
}
2013年 ACMICPC 杭州赛区H题的更多相关文章
- hdu 4460 第37届ACM/ICPC杭州赛区H题 STL+bfs
题意:一些小伙伴之间有朋友关系,比如a和b是朋友,b和c是朋友,a和c不是朋友,则a和c之间存在朋友链,且大小为2,给出一些关系,求出这些关系中最大的链是多少? 求最短路的最大距离 #include& ...
- HDU 4777 Rabbit Kingdom (2013杭州赛区1008题,预处理,树状数组)
Rabbit Kingdom Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 4778 Gems Fight! (2013杭州赛区1009题,状态压缩,博弈)
Gems Fight! Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others)T ...
- HDU 4771 Stealing Harry Potter's Precious (2013杭州赛区1002题,bfs,状态压缩)
Stealing Harry Potter's Precious Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- HDU 4770 Lights Against Dudely (2013杭州赛区1001题,暴力枚举)
Lights Against Dudely Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- 2011 ACM-ICPC 成都赛区A题 Alice and Bob (博弈动规)
题目大意: 有K堆石子,每堆有Ki个.两人的操作能够是: 1 从某一堆拿走一个 假设该堆在此之后没有石子了.就消失 2 合并两个堆 求是否 ...
- 2017北京赛区H题
题目链接 题意:在n*m的矩阵中选择变换或者不变换一个数变成p,使得最大子矩阵和最小 1<=n,m<=150, -1000<=p<=1000; 题解: 他人题解链接 涉及到知识 ...
- HDU 6270 Marriage (2017 CCPC 杭州赛区 G题,生成函数 + 容斥 + 分治NTT)
题目链接 2017 CCPC Hangzhou Problem G 题意描述很清晰. 考虑每个家庭有且仅有$k$对近亲的方案数: $C(a, k) * C(b, k) * k!$ 那么如果在第$1$ ...
- hdu 4461 第37届ACM/ICPC杭州赛区I题
题意:给两个人一些棋子,每个棋子有其对应的power,若b没有或者c没有,或者二者都没有,那么他的total power就会减1,total power最少是1,求最后谁能赢 如果b或c出现的话,fl ...
随机推荐
- github上更新fork项目
转载:https://blog.csdn.net/qq1332479771/article/details/56087333 ps:需要用GitHub所指定的chrome或者firefox浏览器,其它 ...
- UVa新汉诺塔问题(A Different Task,Uva 10795)
主要需要理递归函数计算 #define MAXN 60+10 #include<iostream> using namespace std; int n,k,S[MAXN],F[MAXN] ...
- java 反射bean
描述:新bean和旧bean拥有相同的字段属性.将旧bean的属性值,赋给新bean. Java代码如下: /** * 反射Bean * @param bean 反射的对象 * @param newB ...
- 2.1 <script>元素【JavaScript高级程序设计第三版】
向 HTML 页面中插入 JavaScript 的主要方法,就是使用<script>元素.这个元素由 Netscape 创造并在 Netscape Navigator 2 中首先实现.后来 ...
- 关于ZYNQ-700是否支持大容量SD卡汇报
关于ZYNQ-700是否支持大容量SD卡 不支持. 下午问了客服的FAE给的答案是不清楚,我自己调研了一下为什么. 调查结果: 1. 大容量的SD卡为什么不支持? SD2.0规范中(SDHC)硬件支持 ...
- 笔记-redis安装
笔记-redis安装配置 1. redis安装配置 1.1. windows环境安装 win8已有redis 查看版本:redis-server –version 想更新到5.0.0, ...
- TouTiao开源项目 分析笔记15 新闻详情之两种类型的实现
1.预览效果 1.1.首先看一下需要实现的效果. 第一种,文字类型新闻. 第二种,图片类型新闻. 1.2.在NewsArticleTextViewBinder中设置了点击事件 RxView.click ...
- 110Balanced Binary Tree
问题:判断二叉树是否为平衡二叉树分析:树上的任意结点的左右子树高度差不超过1,则为平衡二叉树. 搜索递归,记录i结点的左子树高度h1和右子树高度h2,则i结点的高度为max(h1,h2 ...
- 2 实现第一个Django网站 博客
-1.理解上下文 render()渲染 request url传来的reuqest x.html 制定返回的模板名称 context 上下文 数据库中 替换数据 0.大框架 1.创建模板 (1 ...
- P1862 输油管道问题
P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...