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 ...
随机推荐
- 关于img底部空白
<img>元素底部为何有空白? 问题: 最近听网课遇到这样一个问题,先po出代码如下: <!--html--> <div class="top"> ...
- LeetCode46. Permutations
Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3] O ...
- leetcode笔记(二)94. Binary Tree Inorder Traversal
题目描述 (原题目链接) Given a binary tree, return the inorder traversal of its nodes' values. For example:Giv ...
- docker-compose 构建mongodb并导入基础数据示例
使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...
- Zeppelin interperter 模式设置总结图解2
该配置是在zeppelin的Interpreter的后台配置文件:conf/Interpreter.json spark Interpreter的模块定义那里.特别感谢开发团队组长大神的提示,深入挖掘 ...
- 【转载】VS2015 + EF6连接MYSQL5.6
引用文章:https://jingyan.baidu.com/article/ce09321b9cc43f2bff858fbf.html 安装包注意点说明: 1.程序名称:mysql-for-visu ...
- SVN中Commit出现乱码的解决方案【转载】
http://blog.csdn.net/thinkingcao/article/details/52797737 这几天在电脑上装了一个SVN,把Eclipse里面的工程全部Delete掉了,然后在 ...
- CentOS7下安装FTP
1.安装vsftpd yum install -y vsftpd 2.设置 使用命令systemctl status vsftpd.service查看ftp状态. 开启ftp systemctl st ...
- DFS初级剪枝及心得
关于DFS心得: 1.利用结构体,记录mark和题目要求的基本属性. 2.用到递归,使用递归时注意要设置出口,即符合要求时return,注意对递归的理解,对于不同情况可能要传递不同的参数,但出口都是一 ...
- 笔记-restful
笔记-restful 1. restful简介 restful:representational state transfer,简称REST,描述了一个架构样式的网络系统. 值得注意的是RE ...