亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

bzoj4542 [Hnoi2016]大數

2019-11-10 17:27:48
字體:
來源:轉載
供稿:網友

Description

  小 B 有一個很大的數 S,長度達到了 N 位;這個數可以看成是一個串,它可能有前導 0,例如00009312345。小B還有一個素數P。現在,小 B 提出了 M 個詢問,每個詢問求 S 的一個子串中有多少子串是 P 的倍數(0 也是P 的倍數)。例如 S為0077時,其子串 007有6個子串:0,0,7,00,07,007;顯然0077的子串007有6個子串都是素數7的倍數。

Input

  第一行一個整數:P。第二行一個串:S。第三行一個整數:M。接下來M行,每行兩個整數 fr,to,表示對S 的子串S[fr…to]的一次詢問。注意:S的最左端的數字的位置序號為 1;例如S為213567,則S[1]為 2,S[1…3]為 213。N,M<=100000,P為素數

Output

  輸出M行,每行一個整數,第 i行是第 i個詢問的答案。

Sample Input

11 121121 3 1 6 1 5 1 4

Sample Output

532//第一個詢問問的是整個串,滿足條件的子串分別有:121121,2112,11,121,121。

HINT

 2016.4.19新加數據一組

正解:莫隊算法。

考慮每次端點移動以后能產生的新貢獻。用一個數組val[i]表示這個數只保留前i位上的數,其他位都是0的數模p的余數。那么如果val[l-1]=val[r],那么[l,r]區間上這個數模p=0。所以只要求出這個數組,并把n+1,同時n+1位為0,所有詢問的右端點+1,這樣,就能很好處理了。當指針移動時,只要查詢與當前val相等的個數即可。因為val很大,所以要離散化。注意p=2或5時要加特判,因為只要最后一位模2或5為0,那么這個數就是2或5的倍數。所以就很容易了。

//It is made by wfj_2048~#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <vector>#include <cmath>#include <queue>#include <stack>#include <map>#include <set>#define inf (1<<30)#define il inline#define RG register#define ull unsigned long long#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)using namespace std;struct node{ ull l,r,i; }q[100010];ull c[100010],bl[100010],po[100010],val[100010],num[100010],hsh[100010],ans[100010],pp[100010],PRe[100010],n,m,p,tot,block;char s[100010];il ull gll(){    RG ull x=0,q=1; RG char ch=getchar(); while ((ch<'0' || ch>'9') && ch!='-') ch=getchar();    if (ch=='-') q=-1,ch=getchar(); while (ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x;}il int cmp(const node &a,const node &b){ return bl[a.l]<bl[b.l] || (bl[a.l]==bl[b.l] && a.r<b.r); }il void solve(){    for (RG ull i=1;i<=n;++i) pre[i]=pre[i-1]+((s[i]-48)%p==0),pp[i]=pp[i-1]+i*((s[i]-48)%p==0);    for (RG ull i=1;i<=m;++i){	RG ull l=gll(),r=gll();	printf("%llu/n",pp[r]-pp[l-1]-(pre[r]-pre[l-1])*(l-1));    }    return;}il void work(){    scanf("%llu%s%llu",&p,s+1,&m); n=strlen(s+1);    if (p==2 || p==5){ solve(); return; } block=sqrt(n);    for (RG ull i=1;i<=m;++i) q[i].l=gll(),q[i].r=gll()+1,q[i].i=i;    for (RG ull i=1;i<=n;++i) bl[i]=(i-1)/block+1; sort(q+1,q+m+1,cmp);    po[n]=1; for (RG ull i=n-1;i;--i) po[i]=po[i+1]*10%p;    for (RG ull i=n;i;--i) num[i]=val[i]=(val[i+1]+(s[i]-48)*po[i])%p; sort(num+1,num+n+2);    hsh[tot=1]=num[1]; for (RG ull i=2;i<=n+1;++i) if (num[i]>num[i-1]) hsh[++tot]=num[i];    for (RG ull i=1;i<=n+1;++i) val[i]=lower_bound(hsh+1,hsh+tot+1,val[i])-hsh; ull L=1,R=0,Ans=0;    for (RG ull i=1;i<=m;++i){	while (L>q[i].l) L--,Ans+=c[val[L]],c[val[L]]++;	while (R<q[i].r) R++,Ans+=c[val[R]],c[val[R]]++;	while (L<q[i].l) c[val[L]]--,Ans-=c[val[L]],L++;	while (R>q[i].r) c[val[R]]--,Ans-=c[val[R]],R--;	ans[q[i].i]=Ans;    }    for (RG ull i=1;i<=m;++i) printf("%llu/n",ans[i]); return;}int main(){    File("number");    work();    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文在线观看| 欧美性猛交xxxx黑人| 久热国产精品视频| 日韩美女福利视频| 久久国产精品首页| 日韩精品在线电影| 亚洲欧洲一区二区三区久久| 欧美视频在线观看免费| 亚洲第一区在线| 欧美日韩一区二区在线播放| 日韩中文字幕欧美| 韩国三级日本三级少妇99| 狠狠久久五月精品中文字幕| 中文字幕亚洲综合| 亚洲第一男人天堂| 亚洲欧美日韩天堂一区二区| 欧美激情一级精品国产| 97久久久免费福利网址| 中文字幕亚洲综合久久| 亚洲性视频网站| 亚洲色图第一页| 亚洲精品久久久久久久久| 亚洲综合第一页| 亚洲天堂av综合网| 亚洲va码欧洲m码| 国产精品人成电影| 欧美网站在线观看| 久久久噜久噜久久综合| 黑人巨大精品欧美一区免费视频| 亚洲韩国青草视频| 欧美在线观看网站| 久久久久免费精品国产| 亚洲美女又黄又爽在线观看| 亚洲精品久久久久中文字幕欢迎你| 日韩欧美综合在线视频| 久久久91精品国产一区不卡| 国产在线拍揄自揄视频不卡99| 一本色道久久88精品综合| 91免费电影网站| 97国产精品人人爽人人做| 91po在线观看91精品国产性色| 亚洲免费成人av电影| 成人精品一区二区三区| 国产日韩在线一区| 久久成人在线视频| 欧洲亚洲免费视频| 日本一区二三区好的精华液| 欧美午夜宅男影院在线观看| 日韩电影大全免费观看2023年上| 亚洲欧洲xxxx| 尤物九九久久国产精品的分类| 久久久精品久久| 中文字幕日韩欧美在线视频| 国产精自产拍久久久久久| 亚洲国产精彩中文乱码av在线播放| 九色成人免费视频| 亚洲人免费视频| 久久人体大胆视频| 欧美日韩在线视频一区| 亚洲欧美激情在线视频| 亚州成人av在线| www.日韩欧美| 久久国产天堂福利天堂| 久久久久国产精品一区| 欧美激情18p| 6080yy精品一区二区三区| 一区二区三区在线播放欧美| 亚洲激情国产精品| 国产午夜精品一区二区三区| 中文字幕亚洲自拍| 久久久国产精品视频| 欧美寡妇偷汉性猛交| 国产欧美日韩免费看aⅴ视频| 久久精品国产欧美亚洲人人爽| 亚洲国产成人一区| 日韩在线观看你懂的| 91超碰caoporn97人人| 一区二区欧美在线| 日韩激情第一页| 日韩经典中文字幕在线观看| 久久久久久亚洲精品| 国产69精品99久久久久久宅男| 青草青草久热精品视频在线观看| 国产精品视频精品| 午夜精品久久久久久久99热| 亚洲桃花岛网站| 国产精品激情av电影在线观看| 菠萝蜜影院一区二区免费| 中文字幕日本精品| 成人黄色大片在线免费观看| 国产亚洲精品一区二555| 久久国产精品网站| 日韩精品视频免费专区在线播放| 国产精品人成电影在线观看| 性欧美暴力猛交69hd| 97免费在线视频| 色狠狠av一区二区三区香蕉蜜桃| 欧美电影在线播放| 欧美成人免费视频| 国产成人精品视频在线| 国产精品视频永久免费播放| 国产亚洲在线播放| 国产精品看片资源| 亚洲一区二区国产| 九九热精品在线| 亚洲午夜精品久久久久久久久久久久| 亚洲色图综合久久| 日韩三级成人av网| 日韩av在线一区| 国产成人精品久久亚洲高清不卡| 欧美日韩国产va另类| 亚洲欧美成人网| 久久精品免费播放| 国产亚洲欧美另类中文| 亚洲欧洲激情在线| 欧美日韩午夜剧场| 国产拍精品一二三| 97超碰蝌蚪网人人做人人爽| 日韩av一区在线| 秋霞成人午夜鲁丝一区二区三区| 在线观看视频99| 精品国产精品三级精品av网址| 久久偷看各类女兵18女厕嘘嘘| 亚洲www在线观看| 国内精品久久久久伊人av| 91精品国产综合久久香蕉的用户体验| 亚洲一区二区久久久久久久| 国产v综合ⅴ日韩v欧美大片| 日本三级韩国三级久久| 中文字幕久热精品视频在线| 欧美精品www| 奇门遁甲1982国语版免费观看高清| 成人欧美在线观看| 国产精品永久免费| 91高清免费在线观看| 久久精品中文字幕电影| 欧美日韩视频免费播放| 亚洲精品自在久久| 亚洲第一免费网站| 2020欧美日韩在线视频| 欧洲s码亚洲m码精品一区| 亚洲人成伊人成综合网久久久| 欧美午夜影院在线视频| 日韩精品在线观看一区| 亚洲片av在线| 国产亚洲精品美女久久久久| 国产suv精品一区二区三区88区| 亚洲成色www8888| 97碰碰碰免费色视频| 国产视频精品一区二区三区| 亚洲人成电影网站色www| 亚洲精品天天看| 人人做人人澡人人爽欧美| 久久免费视频网站| 亚洲美女黄色片| xxxxxxxxx欧美| 91九色蝌蚪国产| 韩曰欧美视频免费观看| 久久这里只有精品视频首页| 欧美性猛交xxxx乱大交极品| 亚洲开心激情网| 精品国产拍在线观看| 欧美一区二区三区精品电影| 欧美肥婆姓交大片|