国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

BZOJ2790: [Poi2012]Distance

2019-11-08 02:58:10
字體:
來源:轉載
供稿:網友

可以對每個Ai的所有約數xi求它到Ai的距離,然后被枚舉的所有數維護他到Ai的最小值和次小值,然后對每個Ai求Aj的時候就可以枚舉它的約數,如果最小值i和j重復就詢問次小值

code:

#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long long#define lowbit(x) x&(-x)using namespace std;const int maxn = 110000;const int maxm = 1100000;int a[maxn],n;int p[maxm],PRi,minp[maxm],s[maxm];bool v[maxm];void pre(){ memset(v,false,sizeof v); s[1]=0; pri=0; for(int i=2;i<maxm;i++) { if(!v[i]) { p[++pri]=i; minp[i]=i; s[i]=1; } for(int j=1;j<=pri;j++) { int k=i*p[j]; if(k>=maxm) break; v[k]=true; minp[k]=p[j]; s[k]=s[i]+1; if(i%p[j]==0) break; } }}int d[maxm][2],di[maxm][2];void g_d(){ memset(d,63,sizeof d); for(int i=1;i<=n;i++) { int x=a[i]; int k=sqrt(x); for(int j=1;j<=k;j++) { int l=j; if(x%j==0) { if(d[j][0]>s[x/j]) { d[j][1]=d[j][0]; di[j][1]=di[j][0]; d[j][0]=s[x/j]; di[j][0]=i; } else if(d[j][1]>s[x/j]) { d[j][1]=s[x/j]; di[j][1]=i; } if(j*j==x) break; j=x/j; if(d[j][0]>s[x/j]) { d[j][1]=d[j][0]; di[j][1]=di[j][0]; d[j][0]=s[x/j]; di[j][0]=i; } else if(d[j][1]>s[x/j]) { d[j][1]=s[x/j]; di[j][1]=i; } } j=l; } }}int main(){ pre(); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); g_d(); for(int i=1;i<=n;i++) { int x=a[i]; int k=sqrt(x); int ansx=INT_MAX,ansy=n+1; for(int j=1;j<=k;j++) if(x%j==0) { int jl=j; int xk=x/j; int l=di[j][0]==i; int nws=s[xk]+d[j][l]; if(ansx>nws||(ansx==nws&&ansy>di[j][l])) { ansx=nws; ansy=di[j][l]; } if(j*j==x) break; j=x/j; xk=x/j; l=di[j][0]==i; nws=s[xk]+d[j][l]; if(ansx>nws||(ansx==nws&&ansy>di[j][l])) { ansx=nws; ansy=di[j][l]; } j=jl; } printf("%d/n",ansy); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禹城市| 英超| 阳春市| 文山县| 中阳县| 珲春市| 鞍山市| 尼木县| 定州市| 乌兰县| 宁明县| 鄂尔多斯市| 渑池县| 彭山县| 中方县| 巴彦县| 平顶山市| 阜南县| 广南县| 商城县| 商都县| 秦安县| 常州市| 合山市| 公安县| 荥阳市| 大庆市| 安西县| 吴旗县| 宝鸡市| 苍南县| 武山县| 凤凰县| 元氏县| 乡城县| 友谊县| 湖口县| 天全县| 陆河县| 林州市| 南阳市|