luoguP5309 [Ynoi2012]D1T1

luoguP5310 [Ynoi2012]D1T2

luoguP5311 [Ynoi2012]D1T3

luoguP5312 [Ynoi2012]D2T1

luoguP5313 [Ynoi2012]D2T2

luoguP5314 [Ynoi2012]D2T3

luoguP5062 [Ynoi2014]在太阳西斜的这个世界里

luoguP5063 [Ynoi2014]置身天上之森

luoguP5064 [Ynoi2014]等这场战争结束之后

luoguP5065 [Ynoi2014]不归之人与望眼欲穿的人们

luoguP5066 [Ynoi2014]人人本着正义之名

luoguP5067 [Ynoi2014]长存不灭的过去,逐渐消逝的未来

luoguP5068 [Ynoi2015]我回来了

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 typedef unsigned long long ull;
 5 const int N=1005,inf=1e9+7;
 6 int n,m,q,x,dis[N][N];
 7 queue<int>Q;vector<int>g[N];
 8 bitset<N>ans,f[N][N];
 9 int main()
10 {
11     scanf("%d%d%d",&n,&m,&q);
12     for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dis[i][j]=inf;
13     for(int i=1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);g[a].push_back(b);g[b].push_back(a);}
14     for(int i=1;i<=n;i++)
15     {
16         Q.push(i);dis[i][i]=0;x=i;f[i][0].set(i);
17         while(!Q.empty())
18         {
19             int t=Q.front();Q.pop();
20             for(int j=0;j<g[t].size();j++)
21             {
22                 int v=g[t][j];
23                 if(dis[i][v]==inf){dis[i][v]=dis[i][t]+1;Q.push(v);f[i][dis[i][v]].set(v);}
24             }
25         }
26         for(int j=1;j<=n;j++)f[i][j]|=f[i][j-1];
27     }
28     while(q--)
29     {
30         int t;scanf("%d",&t);ans.reset();
31         while(t--){int a,b;scanf("%d%d",&a,&b);if(b>n)b=n;ans|=f[a][b];}
32         printf("%d\n",ans.count());
33     }
34     return 0;
35 }

View Code

luoguP5069 [Ynoi2015]纵使日薄西山

luoguP5070 [Ynoi2015]即便看不到未来

luoguP5071 [Ynoi2015]此时此刻的光辉

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 const int N=100005,M=32005,K=150,P=19260817;
 5 int n,m,res=1,cc,mx,W,lim,a[N],ans[N],bel[N],pr[N*2],cnt[N*2],inv[N*20],sum[N][155],vis[M];
 6 map<int,int>mp;vector<pair<int,int> >v[N];
 7 struct qq{int l,r,i;}q[N];
 8 inline bool cmp(qq a,qq b){return bel[a.l]==bel[b.l]?(bel[a.l]&1?a.r>b.r:a.r<b.r):a.l<b.l;}
 9 inline void upd(int x,int p,int q){if(p<=K)sum[x][p]+=q;else v[x].push_back(make_pair(p,q));}
10 inline void pre(int a,int x)
11 {
12     for(int i=1;pr[i]*pr[i]<=a&&i<=pr[0];i++)if(a%pr[i]==0){int q=0;while(!(a%pr[i]))a/=pr[i],q++;upd(x,i,q);}
13     if(a!=1){int t=mp[a];if(!t)mp[a]=t=++cc,pr[cc]=a;upd(x,t,1);}
14 }
15 inline void add(int x,int o)
16 {
17     for(int i=0;i<v[x].size();i++)
18     {
19         int p=v[x][i].first,q=v[x][i].second;
20         res=1ll*res*inv[cnt[p]]%P;cnt[p]+=o*q;res=1ll*res*cnt[p]%P;
21     }
22 }
23 int main()
24 {
25     scanf("%d%d",&n,&m);W=n/sqrt(m*2.0/3);
26     for(int i=1;i<=n;i++){scanf("%d",&a[i]);mx=max(mx,a[i]);bel[i]=(i-1)/W;}
27     lim=sqrt(mx);
28     for(int i=2;i<=lim;i++)
29     {
30         if(!vis[i])pr[++pr[0]]=i,mp[i]=pr[0];
31         for(int j=1;j<=pr[0]&&i*pr[j]<=lim;j++){vis[i*pr[j]]=1;if(i%pr[j]==0)break;}
32     }
33     cc=pr[0];mx=0;
34     for(int i=1;i<=n;i++){for(int j=1;j<=K;j++)sum[i][j]=sum[i-1][j];pre(a[i],i);}
35     inv[1]=1;
36     for(int i=2;i<=2000000;i++)inv[i]=1ll*(P-P/i)*inv[P%i]%P;
37     for(int i=1;i<=cc;i++)cnt[i]=1;
38     for(int i=1;i<=m;i++)scanf("%d%d",&q[i].l,&q[i].r),q[i].i=i;
39     sort(q+1,q+m+1,cmp);int L=1,R=0;
40     for(int i=1;i<=m;i++)
41     {
42         int ql=q[i].l,qr=q[i].r;
43         while(L>ql)add(--L,1);
44         while(R<qr)add(++R,1);
45         while(L<ql)add(L++,-1);
46         while(R>qr)add(R--,-1);
47         ans[q[i].i]=res;
48         for(int j=1;j<=K;j++)ans[q[i].i]=1ll*ans[q[i].i]*(sum[R][j]-sum[L-1][j]+1)%P;
49     }
50     for(int i=1;i<=m;i++)printf("%d\n",ans[i]);
51     return 0;
52 } 

View Code

luoguP5072 [Ynoi2015]盼君勿忘

luoguP5073 [Ynoi2015]世上最幸福的女孩

luoguP4118 [Ynoi2016]炸脖龙I

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=500005,M=20000005,inf=1e8;
 4 #define ll long long
 5 int cc,vis[M],pr[M/10],phi[M];
 6 int n,m,a[N];ll c[N];
 7 inline void init()
 8 {
 9     for(int i=2;i<M;i++)
10     {
11         if(!vis[i])pr[++cc]=i,phi[i]=i-1;
12         for(int j=1;j<=cc&&i*pr[j]<M;j++)
13         {
14             vis[i*pr[j]]=1;
15             if(i%pr[j]==0){phi[i*pr[j]]=phi[i]*pr[j];break;}
16             phi[i*pr[j]]=phi[i]*(pr[j]-1);
17         }
18     }
19 }
20 inline void upd(int x,int v){for(;x<=n;x+=x&-x)c[x]+=v;}
21 inline ll qry(int x){ll r=0;for(;x;x-=x&-x)r+=c[x];return r;}
22 inline ll pw(ll x,ll y,ll p)
23 {
24     ll r=1;int tx=0,tr=0;
25     for(;y;y>>=1)
26     {
27         if(y&1){r=r*x;tr|=tx;if(r>=p)r%=p,tr=1;}
28         if(x>=p)tx=1,x%=p;x=x*x;if(x>=p)tx=1,x%=p;
29     }
30     return r+(tr?p:0);
31 }
32 inline ll sol(int x,int r,ll p){if(p==1||x>r)return 1;ll w=qry(x)+a[x],y=sol(x+1,r,phi[p]);return pw(w,y,p);}
33 int main()
34 {
35     init();scanf("%d%d",&n,&m);
36     for(int i=1;i<=n;i++)scanf("%d",&a[i]);
37     for(int i=1;i<=m;i++)
38     {
39         int o,l,r,x;scanf("%d%d%d%d",&o,&l,&r,&x);
40         if(o==1)upd(l,x),upd(r+1,-x);else printf("%lld\n",sol(l,r,x)%x);
41     }
42     return 0;
43 }

View Code

luoguP4688 [Ynoi2016]掉进兔子洞

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=100100,T=25000;
 4 inline int rd()
 5 {
 6     int x=0;char c=getchar();while(!isdigit(c))c=getchar();
 7     while(isdigit(c))x=x*10+c-48,c=getchar();return x;
 8 }
 9 int n,m,W,cc,a[N],b[N],l1[N],l2[N],l3[N],r1[N],r2[N],r3[N],bel[N],cnt[N],ans[N],vis[T+10];
10 bitset<N>f[T+10],tmp;
11 struct qq{int l,r,i,p;}q[N];
12 inline bool cmp(const qq a,const qq b){return a.p<b.p||(a.p==b.p&&a.r<b.r);}
13 inline void upd(int x,int o){x=a[x];if(o<0)tmp[x+cnt[x]-1]=0;else tmp[x+cnt[x]]=1;cnt[x]+=o;}
14 inline void sol(int x,int y)
15 {
16     memset(cnt,0,sizeof(cnt));memset(vis,0,sizeof(vis));cc=0;tmp.reset();int l=1,r=0;
17     for(int i=x;i<=y;i++)
18     {
19         q[++cc]=(qq){l1[i],r1[i],i,bel[l1[i]]};q[++cc]=(qq){l2[i],r2[i],i,bel[l2[i]]};
20         q[++cc]=(qq){l3[i],r3[i],i,bel[l3[i]]};ans[i]=r1[i]-l1[i]+r2[i]-l2[i]+r3[i]-l3[i]+3;
21     }
22     sort(q+1,q+cc+1,cmp);
23     for(int i=1;i<=cc;i++)
24     {
25         while(r<q[i].r)r++,upd(r,1);
26         while(l>q[i].l)l--,upd(l,1);
27         while(r>q[i].r)upd(r,-1),r--;
28         while(l<q[i].l)upd(l,-1),l++;
29         int t=q[i].i-x+1;if(!vis[t])vis[t]=1,f[t]=tmp;else f[t]&=tmp;
30     }
31     for(int i=x;i<=y;i++)ans[i]-=f[i-x+1].count()*3;
32 }
33 int main()
34 {
35     n=rd();m=rd();W=sqrt(n);
36     for(int i=1;i<=n;i++){a[i]=rd();b[i]=a[i];bel[i]=(i-1)/W+1;}
37     sort(b+1,b+n+1);
38     for(int i=1;i<=n;i++)a[i]=lower_bound(b+1,b+n+1,a[i])-b;
39     for(int i=1;i<=m;i++){l1[i]=rd();r1[i]=rd();l2[i]=rd();r2[i]=rd();l3[i]=rd();r3[i]=rd();}
40     for(int i=1;i<=m;i+=T)sol(i,min(m,i+T-1));
41     for(int i=1;i<=m;i++)printf("%d\n",ans[i]);
42     return 0;
43 }

View Code

luoguP4689 [Ynoi2016]这是我自己的发明

luoguP4690 [Ynoi2016]镜中的昆虫

luoguP4692 [Ynoi2016]谁的梦

luoguP4693 [Ynoi2016]炸脖龙II

luoguP5354 [Ynoi2017]由乃的OJ

luoguP5355 [Ynoi2017]由乃的玉米田

luoguP5356 [Ynoi2017]由乃打扑克

luoguP4680 [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?

luoguP4117 [Ynoi2018]五彩斑斓的世界

luoguP4119 [Ynoi2018]未来日记

luoguP5398 [Ynoi2018]GOSICK

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 #define pb push_back
 5 const int N=100005,M=100000,W=500;
 6 int n,m,a[N],b[N],c[N],ss[N],r1[N],r2[N],r3[N],r4[N];ll p1[N],p2[N],res[N<<1],ans[N];
 7 struct st{int l,r,i;}q[N];vector<st>g[N];vector<int>V[N];
 8 inline bool cmp(st a,st b){return a.l/W^b.l/W?a.l<b.l:a.r<b.r;}
 9 inline void init()
10 {
11     for(int i=1;i<=M;i++)for(int j=i;j<=M;j+=i)V[j].pb(i);
12     for(int i=1;i<=M;i++)for(int j=1;j<=32;j++)if(i%j==0)ss[i]|=1<<j-1;
13 }
14 void ins(int x)
15 {
16     if(x<=32)
17     {
18         if(x<=8)for(int i=0;i<256;i++)r1[i]+=(i>>(x-1)&1);
19         else if(x<=16)for(int i=0;i<256;i++)r2[i]+=(i>>(x-9)&1);
20         else if(x<=24)for(int i=0;i<256;i++)r3[i]+=(i>>(x-17)&1);
21         else for(int i=0;i<256;i++)r4[i]+=(i>>(x-25)&1);
22     }
23     else for(int i=x;i<=M;i+=x)b[i]++;
24 }
25 inline int calc(int x){x=ss[x];return r1[x&255]+r2[x>>8&255]+r3[x>>16&255]+r4[x>>24&255];}
26 inline int sum(int x){return b[x]+c[x]+calc(x);}
27 int main()
28 {
29     scanf("%d%d",&n,&m);init();
30     for(int i=1;i<=n;i++)scanf("%d",&a[i]);
31     for(int i=1;i<=m;i++){scanf("%d%d",&q[i].l,&q[i].r);q[i].i=i;}
32     sort(q+1,q+m+1,cmp);int l=1,r=0;
33     for(int i=1;i<=m;i++)
34     {
35         if(l<q[i].l)g[r].pb((st){l,q[i].l-1,i<<1});else if(l>q[i].l)g[r].pb((st){q[i].l,l-1,i<<1});l=q[i].l;
36         if(r<q[i].r)g[l-1].pb((st){r+1,q[i].r,i<<1|1});else if(r>q[i].r)g[l-1].pb((st){q[i].r+1,r,i<<1|1});r=q[i].r;
37     }
38     for(int i=1;i<=n;i++)
39     {
40         p1[i]=p1[i-1]+sum(a[i]);
41         for(int j=0;j<V[a[i]].size();j++)c[V[a[i]][j]]++;
42         ins(a[i]);p2[i]=p2[i-1]+sum(a[i]);
43         for(int j=0;j<g[i].size();j++){st t=g[i][j];for(int k=t.l;k<=t.r;k++)res[t.i]+=sum(a[k]);}
44     }
45     l=1,r=0;ll s=0;
46     for(int i=1;i<=m;i++)
47     {
48         if(l<q[i].l)s+=p2[q[i].l-1]-p2[l-1]-res[i<<1];else if(l>q[i].l)s+=res[i<<1]+p2[q[i].l-1]-p2[l-1];l=q[i].l;
49         if(r<q[i].r)s+=p1[q[i].r]-p1[r]-res[i<<1|1];else if(r>q[i].r)s+=res[i<<1|1]-p1[r]+p1[q[i].r];r=q[i].r;ans[q[i].i]=s+r-l+1;
50     }
51     for(int i=1;i<=m;i++)printf("%lld\n",ans[i]);
52     return 0;
53 } 

View Code

luoguP5399 [Ynoi2018]駄作

luoguP5046 [Ynoi2019模拟赛]Yuno loves sqrt technology I

luoguP5047 [Ynoi2019模拟赛]Yuno loves sqrt technology II

luoguP5048 [Ynoi2019模拟赛]Yuno loves sqrt technology III

转载于:https://www.cnblogs.com/alonefight/p/11026370.html

Ynoi(5/35)相关推荐

  1. php网课资源百度云盘_安全中国PHP网站开发工程师就业指导班 35课 附课件、源码,全套视频教程学习资料通过百度云网盘下载...

    链接失效请联系微信 ZA_summer,有需要某课网某某课堂精品付费课的朋友也可以联系我.ps:凡在本店**过教程的同学即可加入技术交流群,群内不定期推送最新it教程. 第1课初识php及其php的开 ...

  2. Linux命令find的35个实例

    注:本文内容参考<35 Practical Examples of Linux Find Command> 网址:http://www.tecmint.com/35-practical-e ...

  3. 3分钟内快速部署MySQL5.6.35数据库实践

    3分钟内快速部署MySQL5.6.35数据库实践 1.下载软件 wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-g ...

  4. grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 简单介绍 在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前被认为最高效的字符串搜索算法,它由Bob ...

  5. 35岁以前成功的12条黄金法则(1)

    第一章:一个目标 一艘没有航行目标的船,任何方向的风都是逆风. 1.你为什么是穷人,第一点就是你没有立下成为富人的目标. 2.你的人生核心目标是什么?杰出人士与平庸之辈的根本差别并不是天赋.机遇,而在 ...

  6. 程序员效率低下的35个坏习惯

    优秀程序员与平庸程序员的最终差别其实是习惯,避开那些让自己低效的坏习惯是程序员让自己变优秀的有效途径. 1 .总是说"一会弄好",但从来不兑现.(缺乏任务管理和时间管理能力) 2 ...

  7. MySQL 5.5.35 单机多实例配置详解

    一.前言 二.概述 三.环境准备 四.安装MySQL 5.5.35 五.新建支持多实例的配置文件(我这里配置的是四个实例) 六.初始化多实例数据库 七.提供管理脚本 mysqld_multi.serv ...

  8. Ubuntu 15.10安装ns2.35+nam

    2019独角兽企业重金招聘Python工程师标准>>> Step1: 更新系统 sudo apt-get  update #更新源列表 sudo apt-get upgrade #更 ...

  9. 女程序员也有35岁危机焦虑吗?

    作者 | 郭雪  信通院云大所 责编 | 张红月 出品 | CSDN(ID:CSDNnews) [CSDN 编者按]在程序员界,我们鲜少会去关注女性的职场处境及工作危机,本文从女性是否适合做开发谈起, ...

  10. “35岁才是一个程序员成熟的开始!”

    作者 | 王晓波,同程旅行机票事业群CTO [写在前面] 不知道从什么时候开始,身边的"小朋友"们都开始为一件事感到焦虑,那就是:"到了35岁我还能找到一份编程的工作吗? ...

最新文章

  1. PyCharm中已经有requirements.txt没有提示自动安装
  2. GARFIELD@02-19-2005
  3. python卸载opencv_20.Windows python,opencv的安装与卸载
  4. BFC的作用以及原理介绍
  5. 2018年,云计算的6大未来趋势
  6. [C#] 代码混淆和加壳
  7. 恶劣天气 3D 目标检测数据集收集
  8. 【水题】CodeForce 1183A
  9. 笑一笑 悟空!你丫这泼猴!怎么还不来啊!
  10. 深入浅出达梦SQL(基础篇)
  11. 个人版整理APP测试流程
  12. Polaris Office for Mac(经典办公套件)
  13. NSArray进行汉字排序
  14. 小程的自学编程路途起点
  15. Mongodb 3.6安装过程(centos7.9)
  16. 相约,一朵春天的微笑
  17. 如何在linux编写perl脚本,关于linux:如何在perl脚本中插入awk命令?
  18. BlockingQueue
  19. QPainter::begin: Painter already active问题解决方案
  20. 2023—静待“雨中的海棠”发芽

热门文章

  1. osm 搭建离线地图_利用OpenStreetMap(OSM)数据搭建一个地图服务
  2. linux shell 统计词频,shell之词频统计
  3. 蓝桥试题 算法提高 Java分割项链
  4. 手写数字识别:CNN-AlexNet
  5. 成语——》谁不曾浑身是伤,谁不曾彷徨迷惘
  6. python 进化树_Python / ete3:将最密切相关的叶子定位到系统树中的特定物种
  7. 永恒之塔总是服务器未响应,《剑网3》《永恒之塔》怀旧服刚开上演“冲级热”,八月怀旧游戏集体搞事...
  8. Kent Beck 教你编程模式与代码重构
  9. Java导入Excel文档到数据库
  10. 数据挖掘算法和实践(二十一):kaggle经典-职场离职率分析案例解读