OI退役记,第三部分,2017省选季(上)

后缀数组——罗穗骞倍增算法代码详解 首先解释一下用到的几个数组。 数组sa:构造完成前表示关键字数组,下标表示名次,值表示关键字的首字符位置,值相同的时候名次根据在原串中相对位置的先后决定;构造完成后表示后缀数组,下标表示名次,值表示后缀的首字符位置。 数组x:表示rank数组,下标表示关键字的位置,值表示关键字大小(rank),相同的值有相同的rank。初始化为字符串r的每个字符大小(此时x并不代表rank,只借助其值比较相对 阅读详情

我曾走遍世界,
人们见我无处不在…
  ——苦役犯伏脱冷口中所哼之歌,巴尔扎克《人间喜剧》

  
  新年的第一个节目是期末考试。我们这些被从机房赶回教室的人毫不意外地考得不怎么样,这也在我们的意料之内,所以也没有后悔或者伤心之类的想法。考完当天下午,我们就把书包从教室里拿走,打算常驻在机房里了。高二的同学们绝大多数都去了冬令营,因此这下404归我们使用,可以宽宽绰绰地一人一个卡座,不必再挤在中间的大方桌旁。不过,几天之后我在蔺老那里得到两个消息:首先是oj7马上要被换掉。新的服务器已经配好了硬件,只等懂行的同学——这里指的是高二的小胖和cx,还有司机——配置好之后就可上线。能够用一个更新更快的OJ考试自然是我们很乐意的,但另一个消息让我们有一点惊讶:404里的东西马上要被拆除,寒假之后我们就得从科技楼搬到艺术楼的新机房去。究其原因,大概是因为科技楼里的旧机房已经显得不合时宜,并且404里的杂物早就多到令人无法忍受的地步——今年二月份我们回去怀旧的时候还能从立柜里翻出一份国家集训队论文来,是罗穗骞的《后缀数组》。后来,新机房的建设工作直到省选之后才大致完成,而404的重新安置到现在也没个着落。听说生物竞赛的文宗老师有意把这里改造成生竞教室,但不知为何一直没有实施。
  
  有关去年的寒假,我印象最深的是成都地铁四号线的消毒水味道。每天早上七点从床上爬起来,穿上羽绒服和长裤,一边嚼着几片昨晚买好的面包一边往地铁站赶。早高峰时站在地铁上都不用拉扶手,左边是人,右边是人,前后都是人,后坐力和加速度都被这一群人缓冲掉了。坏处就是千辛万苦挤出屏蔽门后往往出了一身汗。虽然天气很冷,交通也不便,但每天快八点赶到学校,看到满天的朝霞和彩云,心中总有一种莫名的振奋之感,好似一副六十年代的标语“天寒地冻百不咋,心里装着全天下”;然后就走入校门,爬上科技楼的楼梯,进机房考试了。太阳在窗外不紧不慢地升起来,考完的时候终于日上三竿。

  下午则是讲课的时间。蔺老从北京请了不少老师来给我们这些没能去成冬令营的人讲课:周尚彦(来自北大,之前在八十中讲过网络流。他的PPT做得非常用心,因此我们前后两次请他讲课),毕克(之前在八十中见过。他这次讲博弈,我仍然听不懂),何家傲(本校的学长,之前在清华见过面。)。平心而论,讲师们讲的非常好,但我在这个寒假的提升却不如自己的预期,没有如想象中把我曾经列出的一个OI知识点清单上的东西学完。直到五月份晚期,这张清单才被搞定,我才开始在bzoj上刷题,其余同学则大多是从这个寒假就开始了。现在总结错误为时已晚,不过我想还是写出来好一点:
  
  一,不应迷信高级算法和数据结构。这里的意思不是我在知乎上写的《优秀的OIER都是不学算法的》,那是篇蹭热点的文章。我们是由于某个需求而选择使用某种算法,而不是看到一个问题就硬拿一个算法上去套。除去诸如SPFA,FFT之类实在经典的东西之外,其余有一大部分算法说是某种思想更加准确。能用基本简单的方法解决的,一般不要把问题复杂化。我学完SAM之后兴致勃勃地以为从此字符串再无难题,结果能用到SAM的题目反倒只占一小部分,其余的题要么没必要用,要么用了反而更复杂。
  
  二,只有题目量才能保证水平。对于OI这种没有过程分只有暴力分的比赛,思考问题的时间必须限制在一个严格的区间内——而做过的题目越多,见过的思路越多,碰到试题时想到正解所用的期望时间也就越快,就能留出更多时间去调试或写其他的题。不幸的是本人直到退役为止bzoj上的题目量都在机房里处于垫底水平,只有机房AC量第一的cdsf一半左右。即使回到高考学习上,题目量仍然有其不可代替的重要性。简而言之:熟能生巧,勤能补拙。
  
  三,这一点大概不只适用于OI,可以归到人生经验一部分去:如果对于某个目标,你只看到了完成它之后的光荣和名望,并且这一切让你感觉美妙的话,那只意味着你离这个目标还相去甚远。“要想人前显贵,就得人后受罪”不是一句空话。受人尊敬和崇拜的感觉,生命中的光辉时刻——或者用vfleaking的话说,“金牌,金杯,金策,金色的灯光;掌声,笑容,闪光灯,憧憬着的OIer。”是一种奢侈品,需要付出高昂的代价才能换取。这一课我在很久之后方才学会——如果早几个月,或许现在我写的就是代码,而非退役记了。
  
  以上总结了当时我的某些思想错误,希望能有那么一点警示作用。
  
  大年初八我们开始了寒假的第二期集训。去冬令营的同学们都回来了,并且成果斐然:高二的同学们有五位签了THU一本,其中lxl是无条件;我们这一届的yfzcsc也得到了一个省队线上一本,司机冬令营不慎翻了车(后来他直接保送了)。学校走廊里的电子屏上用红底金字滚动播出喜报,张老的脸上喜气洋洋。这些生动案例对我们的鼓舞也是极大的:他们可以,我为什么不行?明年这个时候屏幕上打出来的名字就是“高二十班 徐西岭”,我就有资格优哉游哉的度过高三生活,学校的“优秀毕业生”张贴栏里就会有我的名字和头像。第二期集训的内容我已经记不清,想的起来的就只有这些当时的想法。
  
  高一下半期开学之后,竞赛班迎来了一次调整——在此之前得先解释一下我们的竞赛政策。我们这一届有两个竞赛班:九班和十班,两个班中,九班鼓励竞赛,十班则兼抓高考。最开始被分到十班的有cdsf,clh,cby,两个妹子和我。这次调整人员把cdsf和clh分到了九班(clh后来又回来了),czqqqaq则到了十班,我原地不动。现在想来,这应当被看作一次提醒,提醒我需要改变一下学习的策略和态度。但当时我压根不以为意,因为有一个现成榜样:高二的f321dd同学出身平行班,寒假刚拿到THU一本。而他的经验是什么?“我一直跟着其他人停课训练的啊。”于是在这个学期里,除去语数外物化生六门课,其余科目的课时我一概在机房度过,再加上每天的第二节晚自习,时常还顺便带上第一节。而另一个和我采取同样策略的就是刚刚提到的cdsf同学,于是在高一的学生里面,除了已经停课的前三位(司机,yfzcsc,wxh),剩下的人里面去机房最勤的就属我们两个。这样作业是不可能写完了,但在机房里的确能学到不少东西,并且十班老师也知道我们毕竟还没有放弃竞赛,所以也就任由我们到机房里去待一节又一节课。
  
  这里再讲一点两个班的现况:九班现在只剩大约三十个人,其余人退役之后大部分来了十班,小部分去了七班,十三班等等实验班。两个班的教室相隔只有一堵墙,每天上课的时候一边人满为患,一边空无一人——全都停课了。由于多次人事调整,九十两班的同学有一半在两个班都待过,两边的同学都认识。像这样一届两个竞赛班的案例在七中不仅前无古人,更是后无来者:下一届马上恢复了以前一个竞赛班的常规操作。以后毕业拍照留念之时,我建议两个班的人站在一起拍一张。
  
  分班之后时间来到了三月份,省选还有一个月。高二的气氛逐渐变得有一点紧张:他们这一届共有13个人,这还不算高一的三位同学,并且七中高新校区的同学也算是和我们一个学校,所以有能力参与省队竞争的总人数至少有20个,而由于三分之一名额的限制,就算加上D类,也只有8个人能去NOI2017。一年之后这种山雨欲来的感觉也会降临到我们头上,不过去年我们情绪稳定,状态良好。这时蔺老从长沙向我们发来一条消息(wxh他们当时正在雅礼集训,蔺老跟他们在一起):在湖南长沙师大附中有一次为期十天的省选集训,且是面向高一同学的。这下可好,我们高一剩下的几个人,除去两个妹子,cby和clh,其余全都报了名,我们还得知高新校区的高一信息学团队也要跟着我们一起去。于是这下,我们的足迹穿越长江来到湘江,在百越之地停下了脚步。
  

山色空濛雨亦奇

  
  三月是湖南的雨季,后来我们才知道这一点。从前我没有“雨季”这个概念,是到长沙之后才有具体感受的。由于人实在太多,我们只能分批坐出租车去师范大学里边的宾馆——师大附中没有床位给我们住。车子从机场开出来,穿过一座跨江大桥,出租车司机指着江心的一个岛:“那就是橘子洲。”,在桥头远远眺望能看到毛泽东的半身石像,之后几天我们还到上面逛了一圈。过了湘江,师范大学就在不远处,而一进校区,最显眼的不是教学楼,而是旁边的岳麓山。说是山,其实它并不高,比不得青城山或西岭雪山,但放在市区里别有一番风味。
  
  我们住的宾馆即在岳麓山脚下,名叫“红楼”,不过我们晚上并没有梦见大观园一类事物。我在那里住了十天,现在还记得早上从大堂走出去时扑面而来的雨水味道。办了入住,我们和蔺老联系上,准备一起聚餐。集合地点就在师大附中门口,一条大路从校门延伸进去,校园里的建筑分列在两边。校门左边紧挨着有一家奶茶店,之后几天我每次中午下课必定来这里买一杯金桔柠檬,直到服务员一看见我,就向旁边的人招呼:“来一杯金桔柠檬!”再往左走是一条狭窄而凹凸不平的水泥路,路上常年积满了污水,道旁的餐馆参差不齐地排列着,道路中间挤满了附中的学生。我们集训时候的大部分午餐都是在这条街上解决的,至于为什么不在食堂里吃,稍后会解释。
  
  和司机他们会面,吃过晚饭已将近七点,czqqqaq建议我们勘察一下学校周围的地形再回酒店,这个提案被我们一致通过。结果还真让我们发现一条近道——从学校后门出去,走一段连地砖都没铺的泥巴路,就能快速抄回酒店。这个发现为我们节约了至少十分钟的交通时间。我们回到红楼宾馆,为今天的收获感到满意。
  
  当天晚上雨下大了。这场雨断断续续,连连绵绵,从窗外下到梦里,让长沙蒙上了一层水雾。每天我们踩着这样的雨走到附中的机房再回来,地上溅起的雨水从鞋面一直浸到鞋底,脚趾头之间的水多得从后跟的缝隙里溢了出来。回到宾馆必得执行以下几个步骤:解开被水泡松的鞋带;脱下鞋子,把里面的水倒干净;从脚上把湿袜子揭下来;用毛巾擦干脚,穿上拖鞋;把袜子挂在衣架上;把鞋垫取出来,塞进空调的出风口;用鞋带把鞋子绑在空调上;然后打开空调,调到最高风力,最大温度吹上一夜,第二天早上才能穿上一双干燥的鞋子去上课——而走到一半,鞋子又会湿透。这场雨把长沙变成了马孔多。
  
  集训的第一天早上,我们一边听着窗外的阴雨连绵一边品尝湖南特色早餐炒粉条——粉条炒的很好,只是味道太辣——然后踩着雨去参加集训。泥巴路被水泡过之后变成了泥沼,我们小心翼翼地从两边的路牙上走过去。从后门进去,还颇费了一番周折才找到机房所在的科技楼。师大附中的机房比八十中的要略大,但更显旧。我照旧坐了第一列第一排,而同学们又再次跑到后面去了。和上次一样,我再次和坐在旁边的同学搭上了话:这位是lyrance,从山东来此集训。一年之后的省选季,他来到了成都七中,我们的机房短暂招待了他半个多月。这种在集训时结下的交情该叫什么呢?或许就叫同学吧。
  
  第一天上课的不是别人,还是“毕恭毕敬,克勤克让”先生——毕克。这回我勉强听懂了大概30%的内容。下课之后我忍不住去问他怎么学数学呢?他挠了挠头发,想了想告诉我:“有空多琢磨。”我暂且记下了这句话,打算一边吃午饭一边想他这话是什么意思。其他同学还在忙着讨论,看起来不怎么饿,于是我一个人先去吃饭了。门口的老师告诉我集训学生在师范大学的食堂用餐,地点在附中外面某个地方,但保险起见还是他带着我们去。老师领着一群提前去吃饭的学生,在大学里左拐右绕地走了十分钟,才走到食堂。我坐在食堂里面吃到一半,收到czqqqaq的消息,问我食堂在什么地方。我想了想,觉得不好用语言描述,就打开了QQ的定位,传了一个位置给他,然后把这事搁到了一边。
  
  吃完午饭他们都没有出现。雨越下越大,我一心只想回机房躲雨,就跟着路上零零散散的人群绕进了附中的校门。坐在机房里面,已经是下午一点过,czqqqaq一群人仍然无影无踪。直到快两点的时候,他们风尘仆仆地走进机房,脸色绿得好似岳麓山上的树,一进来就气势汹汹地围到我身边“要说法”,我花了好久才把下面这个故事从他们口中撬出来:
  
  czqqqaq,dcy11011,hhhwsqhhh,cdsfcesf,zht111,nzj一行六个人问完问题,打算自己去找食堂。没想到师范大学的地盘又广又复杂,他们绕来绕去竟然绕回了宾馆。突然间czqqqaq想起还有我这样一个人在食堂,于是他们向我要来了定位,以为马上就能吃上便宜又美味的好菜。结果一行人走来走去,雨越下越大,周围越来越荒凉,还出现了诸如废弃的宾馆一类的奇特建筑,最后两旁竟变成了森林。当他们站在一条上山的石板路前面时,终于决定看看我给他们的定位究竟指向什么地方——不知是GPS定位还是QQ的系统出了问题,那里竟然在岳麓山的正中心。于是他们在路边的黄焖鸡摊上解决了午饭,并且发誓回来之后一看见我就要把我吊死。我好不容易,才让他们相信这绝不是我有意为之,而是天意如此,造化弄人。之后我们再也没去过食堂——既然定位有问题,那就算是我自己都找不到食堂在哪里了。
  
  集训的第二天是考试。那天我得了第一个0分。集训群里的各位都在膜一位名叫阮行止的大爷,我趁着他上台讲题的时机去翻了翻名册,结果发现他真名并不叫这个,而究竟是什么我现在也记不清。我把这次得零分归咎于毕克的题目太难,这实际上也不无道理,因为其他同学的分数都在几十分上下波动。那天中午罕见地没有下雨,我们在校园里好生逛了逛。给我印象最深的是教学楼前面一个雕塑,它的正方体底座上有三面刻满了字,还有一面刻了一半。我们原本以为刻的是校史一类的东西,凑近了看,发现是这样的:
  
  XXX 1995级X班 1996年世界数学奥林匹克竞赛银牌
  XXX 1996级X班 1998年中国化学奥林匹克竞赛金牌
  ……
  原来是光荣榜,但上榜的门槛最低也是国级奖项。前三面我们略微扫了扫,第四面上有一个我们熟悉的名字:
  
  彭天翼 2010级X班 2012年中国信息学竞赛金牌
  
  这时我们才知道他是师大附中的同学。看来他这次回来讲课(预定在第五和第六天),还有情系母校的一层。我估算了一下第四面剩下的空间,大概还够八个人的。刻满之后又怎么办呢?多半会再立一座雕塑吧。不知我们周围的附中人们有多少梦想自己的名字有朝一日会铭记在上面。
  
  第二天晚上又开始下雨。过了一天,一个包裹寄到了红楼宾馆。我拿到包裹,撕开包装,从里面拿出一双防水的篮球鞋。我的需求得到了家里的回应,从此以后我再不用每天回到宾馆就换鞋,也不必把脚泡在水里了。窗外,雨水淅淅沥沥淋淋漓漓,不知何时才是个头。
  

动态规划-Dynamic programming 动态规划:将一个问题拆成几个子问题,分别求解这些子问题,即可推断出大问题的解。 判断一个问题能否使用DP解决:能将大问题拆成几个小问题,且满足无后效性、最优子结构性质 DP的核心思想:尽量缩小可能解空间。 暴力做法是枚举所有的可能解,这是最大的可能解空间。 DP是枚举有希望成为答案的解。这个空间比暴力的小得多。 参考阮行止的回答 例1、青蛙跳台阶问题 题目链接 思想 对该问题进行抽象,n个阶梯,每个阶梯都代表一个位置,然后将这个n个位置相连(只能用长度为1和2的线) 这个问题就转化成了从 位置0 到 阅读详情

相关推荐

在Linux机器上部署UOJ评测系统

前言 部署要求 开始部署 Ubuntu软件源更新 docker服务部署 获取UOJ最新社区版 安装UOJ 继续安装 UOJ相关操作 部署GUI管理系统 更多内容 前言学校里想要部署一套OJ,然后就选了UOJ。但是由于服务器还要一段时间(永远)才能到,所以就先拿了一台电脑作为试验机进行内网部署测试。非常感谢以下人: vfleaking 无私开放了UOJ的源码 阮行止 维护社区版本UOJ源

不写博客 9228

[对罗穗骞论文的一点理解]后缀数组——倍增算法

基本定义 首先先来看几个定义: 字符串的大小比较 从第一位开始,按照字典序比较大小,如果相同则比较后一位,否则按照当前这一位的比较结果确定结果,如果比较的时候这一位已经超出其中一个串的长度,则比较它们的长度,长的一个串比较大,如果长度相等,那么它们也相等。 后缀数组 用SA\text {SA}表示,它是一个一位数组,保存的是所有后缀的排序,每一位表示的就是按照大小排序的这个后缀是从哪一位

_Evolution的博客 1021

11.罗穗骞《后缀数组——处理字符串的有力工具》.zip

罗穗骞《后缀数组——处理字符串的有力工具》(有算法源码和解题源码) IOI2009论文,有源码,简单易懂,方便学习后缀数组的构造和各种应用。 后缀数组是一种优秀的数据结构,在字符串匹配方面有诸多应用。

OI生涯回忆录(Part3:至初三NOIP发成绩)

  (十一)抓包 我这个人的说话方式从APIO回来就改变了,回到班里和其他同学说话时,我突然感觉仿佛不是我自己了。 由于和邹雨恒住在一个寝室,我染上了邹雨恒的许多口癖,比如“太神了”“那有点差啊”“!@#¥%……&*”(粗鄙之语) 这是一种病毒,最开始我以为是邹雨恒的病毒,后来发现这是很多学竞赛的人的病毒,其传染速度比东北话还快,我一定不会料到在初三临近毕业的时候,我们班就连集体接...

commonc的博客 2481

罗穗骞《后缀数组——处理字符串的有力工具》(有算法源码和解题源码)

罗穗骞《后缀数组——处理字符串的有力工具》(有算法源码和解题源码) IOI2009论文,有源码,简单易懂,方便学习后缀数组的构造和各种应用。 后缀数组是一种优秀的数据结构,在字符串匹配方面有诸多应用。

分子模拟入门教程 | 低调使用 建议收藏

该方法只需要原子的核电荷和少数模拟的环境参数作为输入,所有的性质都是通过求解薛定谔方程得到的,不需要使用任何经验参数。经典的原子水平的分子模拟已经成为提高我们对材料科学和生命系统中分子过程理解的最流行的方法之一。全原子模拟是一种非常强大的以原子分辨率呈现信息的方法,因为在原子模拟中,一个粒子代表一个特定的原子。随着计算机硬件和模拟技术的快速发展,分子模拟不仅可以解决基本的、常规的化学问题,还可以应用于各种复杂体系。然而,由于问题的复杂性以及严重依赖于现象的现实情况,最好是逐案确定合适的模拟方法。

pysonger的博客 783

NOIP2008全省提高组获奖名单

排名 姓名 城市 学校 性别 年级 成绩 奖项 1 代明昊   广州市   华南师大附中   男高三 400   一等奖 2 姜碧野   中山市   中山市中山纪念中学   男高三 380   一等奖 3 唐福宇   中山市   中山市中山纪念中学   男高三 340   一等奖 3 蒙澎权   中山市   中山市中山纪念中学   男高一 340   一等奖 5 李叶茂   东莞市  

峰云四起 5721

opencv简单小项目

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。要开始一个OpenCV项目,你需要安装OpenCV库,这通常可以通过Python的pip包管理器完成。替换为你要加载的图像的实际路径。这个例子展示了OpenCV项目的基本结构,你可以在此基础上添加更多的图像处理功能。如果你需要更详细的指导或代码示例,请告诉我你的具体需求。

youyouxiong的博客 972

oi退役杂记

现在是2020年的1月22日 如果在11月比赛的时候我少写了一个部分分,可能我现在还坚持在清北学堂继续自闭,也可能草草了事为4年无果的奥赛生涯惋惜。 如果11月比赛的时候我多想到了几个题的正解,可能我现在还坚持写代码闭关深造,也可能为了一个一个新政策而苦恼而放弃。 但是事情偏偏就是很巧,我卡着分数线拿到了省一。AFO。无需选择。无可选择。 4年。从莫名其妙一无所知抱着好奇进入机房,到断断续...

wichiene 715

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 421

电机系列(1) - foc最基本原理、clark变换 、park变换、附代码

什么是FOC? FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制 (VC,Vector Control) ,是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。 简单来说就是,FOC是一种对无刷电机的驱动控制方法,它可以让我们对无刷电机进行 “像素级” 控制,实现很多传统电机控制方法所无法达到的效果。 因为所谓的“矢量控制”其实就是

nepqiu的博客 7万+

这次是真的再见了,oi退役回忆录

嘛这个是有爆点版,如果有缘人认识我的话搜到了也不介意看看我的黑历史把。 这次是真的告别了,高三noip,抱着带小朋友的心态去的,初赛过不过还不一定呢= =。 嘛本来是想到留在周四晚上再写这个回忆的,然后今天把splay切掉,可是状态真是太颓了。根本坐不住。于是打开空间,慢慢回忆,慢慢把这段过往再走一遍。 因为小的时候不懂中二,所以初一二没有留下太多的文字。只能靠大脑回忆。当初结识oi的时候(...

weixin_30487317的博客 408

Qwen3-Omni-30B-A3B-Instruct微调指南:如何打造专属智能博物官(附数据集)

本文详细介绍了如何对Qwen3-Omni-30B-A3B-Instruct模型进行微调,以打造专业的智能博物官。指南涵盖了从理解模型架构优势、构建高质量文博数据集,到使用LLaMA-Factory进行实战微调、效果评估与部署优化的完整流程,并提供了关键的环境配置与性能优化建议,帮助开发者在垂直领域高效定制专属AI助手。

weixin_29096377的博客 1144

OI退役记,第四部分,2017省选季(下)

星空璀璨的夜晚,调色板上绘出蓝与灰。 你用深邃的双眼望向夏日的天空, 山坡上的阴影衬托出水仙花的轮廓, 捕捉微风和冬日的寒冷,雪地上斑驳的色彩。 直到现在我才明白,你想对我说些什么, 你为理智所付出的代价,你如何从中解脱。 其他人却不予理会,他们也不知道如何面对—— 也许现在他们会知道。   ——《Vincent》,美国民歌手唐·麦克林  ...

Tangenter的博客 2731

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1738

华为OD新系统机试真题 - API请求日志去重分析

华为OD新系统机试真题【API请求日志去重分析】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【API请求日志去重分析】

qq_45776114的博客 915

JLOI2017——相逢是问候,离别是祝愿

又是一年春花烂漫省选季,成绩公布,又有六省AB类省队尘埃落定 不过逼话还是少说,我也说不出来什么逼话,老老实实写写流水账吧

neither_nor 3582

43、FMCW雷达高度计仿真

本文介绍了FMCW雷达高度计的波形级建模与仿真过程,重点模拟了着陆和倾斜两种飞行场景以评估其性能。通过结合高程数据和飞行轨迹构建雷达场景,使用自定义信号处理器分析IQ样本并估计高度。结果表明,该高度计在多数情况下满足性能要求,但也存在误差较大的点,提出了地面检测算法优化的潜在方向。

neovim7hacker的博客 135

倍增算法的另一种解法

网上一搜索倍增算法,基本就是罗穗骞同学的介绍。这同学高中时期就研究这么深入,让我这研究生毕业的人汗颜,慢慢爬坑吧。不过说实在的,这代码写的实在看着有点费劲。网上又有人整理了下。不过我看的还是一头雾水,希望有明白人能说明一下。要想了解倍增算法,最好先对RMQ和基数排序算法有一定了解,还要了解一下后缀数组。下面把代码贴过来。 例子图如下: 但是代码的实现和这个图出入很大,不好理解。

俊哥有个Blog 4589

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

超详细!从本质上搞懂困惑你多年的KMP匹配算法

来源:知乎整理:由公众号“帅地玩编程”整理(已获授权)文章来源于知乎作者洛谷网校 阮行止关于 kmp 问题的一个解答,已获作者授权,本文在他的个人博客的地址:https://ruanx....

azl397985856的专栏 603

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

王熠弘OI退役长文

今天,2016年11月20号,NOIp2016day2。从复赛的考场上走出来,还是有点悲伤的,毕竟买出门的那一刻就代表着我退役了。转身回看我的OI历程,也算是一段令我珍惜的奋斗史了吧。像我这种懒人,能激励我,让我奋斗的东西并不多。即使身上负着高考的重担,也并不能让我拿出100%的努力,这也和我的个人想法有关。但是唯有信息、OI,能让我付出全身的精力。2014年10月1日,我转学进入山东省北镇中学,在

DarkKris 6346

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

OI退役记,第一部分,现在和将来

从前有个流浪汉, 他坐在那池塘旁, 在一棵桉树的底下乘凉。 他一边遥望一边歌唱, 歌声在那池塘边上回荡, 快来吧和我一起去流浪。 流浪的人啊,流浪的人啊, 我们一起走遍海角天涯, 他一边遥望一边歌唱, 歌声在那池塘边上回荡, 快来吧和我一起去流浪。   ——《Waltzing Matilda》,澳大利亚民歌   从纯粹回忆...

Tangenter的博客 6263

OI退役记,第九部分,过去和现在

您要去斯卡布罗的集市吗? 欧芹,鼠尾草,迷迭香和百里香。 代我向那里的一个人问好, 如果他曾经是我的爱人。 让他为我做一件麻布衬衫; 欧芹,鼠尾草,迷迭香和百里香。 不要有针眼或缝线的痕迹, 那他才是我真正的爱人。 让他为我找一亩空旷田地; 欧芹,鼠尾草,迷迭香和百里香。 在涌动的大海和荒芜的沙滩之间, 那他才是我真正的爱人。...

Tangenter的博客 4063

退役感言 [Away From OI]

w 终究还是退役了呢。 从初一开始接触到 OI,初三上学期正式开始学习,到现在也过去一年了。2020-10-24 在 ac 的帮助下注册了洛谷账号,11-09 正式到 ZL 开始了短暂的 OI 生涯。2021-03-10 打了第一场 CF,还记得那时全机房花了一整个夜宵的时间才把第一题翻译懂。05-01 打了第一场 Atcoder,后来又陆续到牛客和计蒜客水了些比赛,还白嫖了一件计蒜之道的 T 恤。虽然都没有认真经营这些账号,rating 都不是很好看……的说。 感谢圈子里一起成长的朋友们。 感

laksjsl的博客 650

[杂言] 我,计算机,OI,和我的前 18 年,还有退役

Goodbye OI!

HeRaNO@HSAHRBNU 2542

2022 退役记

退役记

天空之心 439
上一篇: OI退役记,第一部分,现在和将来
下一篇: OI退役记,第四部分,2017省选季(下)
徐西岭official
博客等级 码龄9年 168粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值