当前位置: 首页 > news >正文

电脑做网站空间wordpress文章调用代码

电脑做网站空间,wordpress文章调用代码,东莞最大的广告公司,湖南省建设厅易小林【题目来源】https://www.acwing.com/problem/content/2168/https://www.luogu.com.cn/problem/P3203【题目描述】 某天,Lostmonkey 发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。 游戏一开始,L…

【题目来源】
https://www.acwing.com/problem/content/2168/
https://www.luogu.com.cn/problem/P3203

【题目描述】
某天,Lostmonkey 发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。
游戏一开始,Lostmonkey 在地上沿着一条直线摆上 n 个装置,每个装置设定初始弹力系数 ki,当绵羊达到第 i 个装置时,它会往后弹 ki 步,达到第 i+ki 个装置,若不存在第 i+ki 个装置,则绵羊被弹飞。
绵羊想知道当它从第 i 个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostmonkey 可以修改某个弹力装置的弹力系数,任何时候弹力系数均为正整数。

【输入格式】
第一行包含一个整数 n,表示地上有 n 个装置,装置的编号从 0∼n−1。
接下来一行有 n 个正整数,依次为那 n 个装置的初始弹力系数。
第三行有一个正整数 m,表示操作次数。接下来 m 行每行至少有两个数 i,j。
(1)若 i=1,你要输出从编号为 j 的装置出发被弹几次后被弹飞
(2)若 i=2,则还会再输入一个正整数 k,表示编号为 j 的弹力装置的系数被修改成 k。

【输出格式】
对于每个 i=1 的操作,输出一行一个整数表示答案。

【输入样例】
4
1 2 1 1
3
1 1
2 1 1
1 1

【输出样例】
2
3

【算法分析】
● 本题其实就是
动态树 LCT 的模板题,这里用来练习分块

● 分块算法(区间更新、区间查询)代码实例详见:
https://blog.csdn.net/hnjzsyjyj/article/details/138863063
本例介绍各数组下标从 0 开始的分块算法(单点更新、单点查询)代码。

● 分块是用线段树的分区思想改良的暴力法。代码比线段树简单。效率比普通暴力法高。分块适合求解 m=n=
10^5 规模的问题。或 m*sqrt(n)≈10^7 的问题。其中,n 为元素个数,m 为操作次数。

● 分块操作的基本要素
(1)块的大小用 block 表示。通常,令
block=sqrt(n)。其中,n 为元素个数。
(2)块的数量用 cnt 表示。计算块的数量的代码如下:

int block=sqrt(n);
int cnt=n/block;
if(n % block) cnt++;

(3)块的左边界 le[] 及右边界 ri[]。
若用 le[i] 和 ri[i] 分别表示块 i 的第一个和最后一个元素的位置。
下标从 1 开始,则有:

le[1]=1, ri[1]=block;
le[2]=block+1, ri[2]=2*block;
……
le[i]=(i-1)*block+1, ri[i]=i*block;
……

下标从 0 开始,则有:

le[0]=0, ri[0]=block-1;
le[1]=block, ri[1]=2*block-1;
……
le[i]=i*block, ri[i]=(i+1)*block-1;
……

(4)定义 pos[i] 为第 i 个元素所在的块。
下标从 1 开始,则有 pos[i]=(i-1)/block+1。其中,block=sqrt(n)。
下标从 0 开始,则有 pos[i]=i/block。其中,block=sqrt(n)。

● 数组
step[x],表示从 x 跳出当前块所用步数;数组 to[x],表示从 x 跳出当前块到达的位置。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=1e6+5;
int a[maxn],le[maxn],ri[maxn];
int pos[maxn];
int to[maxn],step[maxn];
int n,m;void build(int n) {int block=sqrt(n);int cnt=n/block;if(n%block) cnt++;for(int i=0; i<cnt; i++) {le[i]=i*block;ri[i]=(i+1)*block-1;}ri[cnt-1]=n-1;for(int i=0; i<n; i++) pos[i]=i/block;
}void update(int L, int R) {for(int i=R; i>=L; i--) {if(i+a[i]>ri[pos[i]]) {to[i]=i+a[i];step[i]=1;} else {to[i]=to[i+a[i]];step[i]=step[i+a[i]]+1;}}
}int query(int x) {int ans=0;while(x<n) {ans+=step[x];x=to[x];}return ans;
}int main() {cin>>n;for(int i=0; i<n; i++) cin>>a[i];build(n), update(0,n-1);cin>>m;while(m--) {int op,x,y;cin>>op>>x;if(op==1) cout<<query(x)<<endl;else {cin>>y;a[x]=y;update(le[pos[x]],ri[pos[x]]);}}return 0;
}/*
in:
4
1 2 1 1
3
1 1
2 1 1
1 1out:
2
3
*/




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/138863063
https://www.acwing.com/solution/content/92055/
https://www.acwing.com/solution/content/170541/
https://www.luogu.com.cn/problem/solution/P3203
https://www.cnblogs.com/xuyixuan/p/9462001.html


 

http://www.15wanjia.com/news/170037.html

相关文章:

  • 宁波网站制作公司书店建设网站的能力
  • php网站建设教程 电子书怎么做棋牌网站
  • 专业购物网站定制手机网站翻页效果
  • 网站设计的思想网站推广的一般方式
  • 温州做网站哪家好中国企业500强排行榜完整榜单
  • 吉林省建设厅官方网站办事指南腾讯企业邮箱登陆入口
  • 网站后台有显示前台没有杭州seo平台
  • 网站建设优化推广教程计算机软件开发培训
  • 网站注册凡科在线教育网站制作
  • 潮汕学院网站开发怎样做网络推广给我 你所有地方都上手
  • 东莞万江网站制作江苏省建设信息网官网
  • 德州市建设小学网站腾讯云域名续费
  • 淘宝做海淘产品 网站折扣变化快wordpress 蜘蛛
  • 做网站沧州仿站小工具+wordpress
  • 太原顶呱呱做网站地址电话外链发布平台大全
  • 网站后台管理系统 aspwordpress仿唯品会
  • 推广网站弄哪家好wordpress登陆可见
  • 插件素材网站做网站被罚款
  • 信息图表设计网站电子商务平台管理
  • 智慧团建注册入口做seo推广一年大概的费用
  • 网站备案跟域名有什么关系论坛类网站备案吗
  • 广东省住房和城乡建设厅网站企业网站建设 百度文库
  • html5网站开发公司有哪些网站能免费建站
  • 企业网站推广方案范文正规培训机构有哪些
  • 如何在图片上添加文字做网站网红网站建设官网
  • 去别人网站挂黑链西安个人网站建设
  • 金华建设网站综合门户网站源码
  • 品牌网站建设gs鼎城网站建设
  • 东莞横沥网站制作公司网站制作多少钱
  • 校园网站制作方法如何看网站的ftp