/*
uva11610
树状数组+素数打表+离散化
打出的素数范围在2-1000000之间,不超过六位数,然后按照格式翻转成七位数
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000005
#define ll long long
int flag[maxn],prime[maxn],cnt;
int fac[maxn],a[maxn],tot,p[maxn];
ll bit1[maxn],bit2[maxn];
map<int,int>m;
int solve(int num){//将每个素数翻转后返回,最后一位必定是0,忽略
int len=,ret=,bit[];
while(num){
bit[len++]=num%;
num/=;
}
for(int i=;i<len;i++)
ret=ret*+bit[i];
while(ret<) ret*=;
return ret;
}
void init(){
for(int i=;i<;i++){//线性筛
if(flag[i])continue;
prime[++cnt]=i;
for(int j=;j*i<;j++)
flag[i*j]=;
}
for(int i=;i<=cnt;i++)//将每个素数翻转
a[i]=solve(prime[i]);
sort(a+,a++cnt);
for(int i=;i<=cnt;i++)//离散化
m[a[i]]=i;
for(int i=;i<=cnt;i++){
fac[i]=;//删掉最后一个0带来的两个质因数
int tmp=a[i];
for(int j=;j<=cnt && prime[j]*prime[j]<=tmp;j++)
while(tmp%prime[j]==){
tmp/=prime[j];
fac[i]++;
}
if(tmp>) fac[i]++;
}
}
void add1(int x,int num){
for(int i=x;i<=maxn-;i+=i&-i)
bit1[i]+=num;
}
void add2(int x,int num){
for(int i=x;i<=maxn-;i+=i&-i)
bit2[i]+=num;
}
ll query1(int x){
ll res=;
for(int i=x;i;i-=i&-i)
res+=bit1[i];
return res;
}
ll query2(int x){
ll res=;
for(int i=x;i;i-=i&-i)
res+=bit2[i];
return res;
}
int main(){
init();
for(int i=;i<=cnt;i++){
add1(i,);
add2(i,fac[i]);
}
char op[];int k;
while(scanf("%s%d",op,&k)!=EOF){
if(op[]=='d'){//把整个点从数组中删除
add1(m[k/],-);
add2(m[k/],-fac[m[k/]]);
}
else {
k++;
int l=,r=cnt,ans;
while(l<=r){
int mid=l+r>>;
ll tmp=query1(mid);
if(tmp<=k)
ans=mid,l=mid+;
else
r=mid-;
}
printf("%lld\n",query2(ans));
}
}
return ;
}

uva11610 树状数组+素数打表求因子,好题!的更多相关文章

  1. HDU 1556 线段树或树状数组,插段求点

    1.HDU 1556  Color the ball   区间更新,单点查询 2.题意:n个气球,每次给(a,b)区间的气球涂一次色,问最后每个气球各涂了几次. (1)树状数组 总结:树状数组是一个查 ...

  2. 二维树状数组+差分【p4514】上帝造题的七分钟

    Description "第一分钟,X说,要有矩阵,于是便有了一个里面写满了\(0\)的\(n\times m\)矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为\((a,b)\),右 ...

  3. POJ 2155 Matrix 【二维树状数组】(二维单点查询经典题)

    <题目链接> 题目大意: 给出一个初始值全为0的矩阵,对其进行两个操作. 1.给出一个子矩阵的左上角和右上角坐标,这两个坐标所代表的矩阵内0变成1,1变成0. 2.查询某个坐标的点的值. ...

  4. 树状数组 LA 4329 亚洲赛北京赛区题

    复习下树状数组 还是蛮有意思的一道题: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&cat ...

  5. Kattis - Fenwick Tree(树状数组区间更新单点求值)

    Fenwick Tree Input The first line of input contains two integers NN, QQ, where 1≤N≤50000001≤N≤500000 ...

  6. nyoj123_士兵杀敌(四)_树状数组_插线求点

    士兵杀敌(四) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战 ...

  7. HDU - 3584 Cube (三维树状数组 + 区间改动 + 单点求值)

    HDU - 3584 Cube Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Subm ...

  8. [Split The Tree][dfs序+树状数组求区间数的种数]

    Split The Tree 时间限制: 1 Sec  内存限制: 128 MB提交: 46  解决: 11[提交] [状态] [讨论版] [命题人:admin] 题目描述 You are given ...

  9. 树状数组 && 线段树应用 -- 求逆序数

    参考:算法学习(二)——树状数组求逆序数 .线段树或树状数组求逆序数(附例题) 应用树状数组 || 线段树求逆序数是一种很巧妙的技巧,这个技巧的关键在于如何把原来单纯的求区间和操作转换为 求小于等于a ...

随机推荐

  1. svg标签

    在页面上画图无非有两种方法,一种是canvas,另外一种就是svg了,canvas之前已经介绍过了,现在来介绍一下svg吧. 其实早在svg出现以前几年,微软已经推出了类似的东西,叫做vml,早期是为 ...

  2. python高级数据可视化Dash2

    k 线国内版 python dash 的应用首页,是用一个 k 线图来做 damo 的,奈何数据源用的 Google,上不去.当然,可以换 yahoo,但是毕竟国内的还是更亲切些. 官方的 demo ...

  3. GO语言的进阶之路-go的程序结构以及包简介

    GO语言的进阶之路-go的程序结构以及包简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑,编译和运行 A,编辑 Go程序使用UTF-8编码的纯Unicode文本编写.大 ...

  4. centos7 cannot find a valid baseurl for repo

    出现这个问题是因为yum在安装包的过程中,虽然已经联网,但是没法解析远程包管理库对应的域名,所以我们只需要在网络配置中添加上DNS对应的ip地址即可. 操作 1.打开网络配置文件 vi /etc/sy ...

  5. C#析构函数与Dispose

    有几种不同的操作方式 方式一: namespace ConsoleApp1 {     class Test     {         ~Test()// 析构函数         {        ...

  6. pyqt5的安装

    第一步:需要安装:pip3 install pyqt5   安装工具:pip3 install pyqt5-tools 第二步:打开Pycharm,进入设置,添加外部工具 file-->sett ...

  7. Shiro+Spring+SpringMVC+Mybatis整合

    Demo源码地址,v1.0分支 https://github.com/jxjy/hr

  8. Problem F Plug It In!

    题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...

  9. Android 常用 adb 命令总结【转】

    原文链接 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中 ...

  10. 发送http请求的方法

    在http/1.1 协议中,定义了8种发送http请求的方法 get post options head put delete trace connect patch. 根据http协议的设计初衷,不 ...