首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
luogu仰望半月的夜空
2024-09-01
luoguP5108 仰望半月的夜空 [官方?]题解 后缀数组 / 后缀树 / 后缀自动机 + 线段树 / st表 + 二分
仰望半月的夜空 题解 可以的话,支持一下原作吧... 这道题数据很弱..... 因此各种乱搞估计都是能过的.... 算法一 暴力长度然后判断判断,复杂度\(O(n^3)\) 期望得分15分 算法二 通过二分+\(hash\)或者等等来优化字典序比较,复杂度\(O(n^2 \log n)\),可能要松一下 期望得分30分 ps:好吧有55分... 算法三 我们考虑字符集非常小的情况 我们猜想出题人很难卡掉玄学做法,因此我们就想一个玄学做法 我们考虑用\(SAM\)来处理这个问题 建出\(SAM\)
【Luogu5108】仰望半月的夜空(后缀数组)
[Luogu5108]仰望半月的夜空(后缀数组) 题面 洛谷 题解 实名举报这题在比赛之前还不是这个样子的,还被我用SAM给水过去了 很明显求出\(SA\)之后就是按照\(SA\)的顺序从前往后考虑每一个长度,这样可以知道串是什么. 不过如果串相同要左端点最靠左,所以二分包含这个串的区间,用\(RMQ\)求出区间最小值即可. (其实就是拿来复习SA板子的) #include<iostream> #include<cstdio> #include<cstring> #in
洛谷 P5108 仰望半月的夜空 解题报告
P5108 仰望半月的夜空 题目描述 半月的夜空中,寄托了多少人与人之间的思念啊 曦月知道,这些思念会汇集成一个字符串\(S(n = |S|)\) 由于思念汇集的过于复杂,因此曦月希望提炼出所有的思念 我们定义\(Y_S(i)\)表示对于字符串\(S\)而言,长度为\(i\)的子串中,字典序最小的,左端点最小的左端点的值 比如对于串\(S = "baa"\),\(Y_S(1) = 2\), \(Y_S(2) = 2\), \(Y_S(3) = 1\) 曦月会告知你\(S\)串,你只需要
Luogu 5108 仰望半月的夜空(后缀数组)
如果是要求左端点最大,直接求出SA,找前缀名次最小值就可以了.虽然现在要左端点最小,但我们已经知道了这个字典序最小的串是什么,找到名次数组上的合法区间求最小值即可.我也不知道为什么我会弃掉这个题,可能太久没写字符串了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> u
洛谷P5108 仰望半月的夜空(后缀数组)
题意 题目链接 Sol warning:下面这个做法只有95分,本地拍了1w+组都没找到错误我表示十分无能为力 我们考虑每个串的排名去更新答案,显然排名为\(1\)的后缀的前缀一定是当前长度的字典序最小的答案,但不一定是左端点最小的答案,因此还需要用一个数据结构去维护一下所有可行的左端点.然后枚举所有后缀更新答案就行了. #include<bits/stdc++.h> using namespace std; const int MAXN = 2e6 + 10, SS = 6e5 + 10,
【LGP5108】仰望半月的夜空
题目 我还会写\(SA\)和 \(ST\)表真是令人感动 发现这是一个思博题 我们开一个指针,标记一下当前合法的字典序最小的后缀排名在哪里,刚开始自然是\(1\) 我们发现这个后缀不能为我们提供\(i\)的长度我们就右移这个指针 之后我们二分+\(St\)表找到从这个后缀往右扩展的最大距离,查一下这里面最小的\(sa\)就好了 代码 #include<cstdio> #include<cstring> #include<iostream> #include<alg
P5108 仰望半月的夜空 SAM+线段树覆盖
$ \color{#0066ff}{ 题目描述 }$ 半月的夜空中,寄托了多少人与人之间的思念啊 曦月知道,这些思念会汇集成一个字符串\(S(n = |S|)\) 由于思念汇集的过于复杂,因此曦月希望提炼出所有的思念 我们定义\(Y_S(i)\)表示对于字符串\(S\)而言,长度为\(i\)的子串中,字典序最小的,左端点最小的左端点的值 比如对于串\(S = "baa"\),\(Y_S(1) = 2, Y_S(2) = 2, Y_S(3) = 1\) 曦月会告知你\(S\)串,你只需要
P5108 仰望半月的夜空
题目链接 题意分析 给你一个字符串 让你求\(1-n\)长度下的字符串的中字典序最小并且最靠左的字符串的开头位置 我们考虑先建出\(SA\) 然后考虑对于一个字符串后缀排序之后 baba 后缀排序之后 先不管位置 只关心字典序 数字代表当前更新长度 a 1 aba 2 3 ba baba 4 我们可以发现 第二个后缀还可以更新长度为\(1\)的子串 所以我们考虑使用二分 求刚好可以满足的位置 然后我们再使用\(RMQ\)求这些位置中对应原串位置最靠左的位置 然后更新即可 CODE: #inclu
伙伴们休息啦canvas绘图夜空小屋
HTML5 canvas绘图夜空小屋 伙伴们园友们,夜深了,休息啦,好人好梦... 查看效果:http://hovertree.com/texiao/html5/28/ 效果图如下: 代码如下: <!doctype html> <html> <head><meta name="viewport" content="width=device-width, initial-scale=1" /> <title>
Luogu 魔法学院杯-第二弹(萌新的第一法blog)
虽然有点久远 还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题 沉迷游戏,伤感情 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; ],last,now,sum[],s; deque<lon
luogu p1268 树的重量——构造,真正考验编程能力
题目链接:http://www.luogu.org/problem/show?pid=1268#sub -------- 这道题费了我不少心思= =其实思路和标称毫无差别,但是由于不习惯ACM风格的题目,没有打答案之间的换行,wa了好几次 解决所有"构造"问题都要按照如下的步骤: 寻找特例.特征 建立模型 一般化模型 寻找特例 (1) 我们假设结点数为1,显然答案为0,因为这棵树的边集为空. (2) 当结点数为2时,答案就是d[1][2],即(1,2)的距离. (3) 当结点数为3时呢
HTML5夜空烟花绽放动画效果
模板描述:HTML5夜空烟花绽放动画效果基于HTML5 canvas制作,模拟夜空烟花绽放动画效果,烟花会在夜空打出贺词,有新年快乐.合家幸福.万事如意.心想事成.财源广进等,文字可以自定义,做成各种祝福网页. 找网站SEO教程,网站模板,以及想要建立个人博客的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的,请联系涂志海,再解决,嘿嘿) 下 载 演示地址 下载说明: 1.解压密码:tuzhihai.com 2.只有部分模板会提供多页面下载,未加说明都是只有一个首页index.html模板
[luogu P2170] 选学霸(并查集+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2170 题目描述 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议.所以老师想请你帮他求出他该选多少学霸,才能既不让同学们抗议,又与原来的M尽可能接近 输入输出格式 输入格式: 第一行,三个正整数N,M,K. 第2...K行,每行2个数,表示一对实力相当的人的编号(编号为1-N) 输出格式: 一行,表示既不让同学们抗议,又与原来的M尽可能接
[luogu P2647] 最大收益(贪心+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品.其中第i个物品有两个属性Wi和Ri,当你选择了第i个物品后,你就可以获得Wi的收益:但是,你选择该物品以后选择的所有物品的收益都会减少Ri.现在请你求出,该选择哪些物品,并且该以什么样的顺序选取这些物品,才能使得自己获得的收益最大. 注意,收益的减少是会叠加的.比如,你选择了第i个物品,那么你就会获
Luogu 考前模拟Round. 1
A.情书 题目:http://www.luogu.org/problem/show?pid=2264 赛中:sb题,直接暴力匹配就行了,注意一下读入和最后一句话的分句 赛后:卧槽 怎么只有40 B.小朋友的球 题目:http://www.luogu.org/problem/show?pid=1655 赛中:sb题,第二类斯特林数,加个高精度就行了,我还写了个暴力对拍 赛后:卧槽 怎么只有80 未知错误怎么回事儿啊 C.命运的彼方 题目:http://www.luogu.org/problem/s
luogu P2580 于是他错误的点名开始了
luogu P2580 于是他错误的点名开始了 https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). 题目描述 这之后校长任命你为特派探员,每天记录他的点名.校长会提供化学竞赛学生的人数和名单,而你需要告诉校长他有没有点错名.(为什么不直接不让他玩炉石.) 输入
CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)
CJOJ 1331 [HNOI2011]数学作业 / Luogu 3216 [HNOI2011]数学作业 / HYSBZ 2326 数学作业(递推,矩阵) Description 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 .. N) Mod M 的值,其中 Concatenate (1 ..N)是将所有正整数 1, 2, -, N 顺序连接起来得到的数.例如,N = 13, Concatenate (1
Luogu 1349 广义斐波那契数列(递推,矩阵,快速幂)
Luogu 1349 广义斐波那契数列(递推,矩阵,快速幂) Description 广义的斐波那契数列是指形如\[A_n=p*a_{n-1}+q*a_{n-2}\]的数列.今给定数列的两系数p和q,以及数列的最前两项a1和a2,另给出两个整数n和m,试求数列的第n项an除以m的余数. Input 输入包含一行6个整数.依次是p,q,a1,a2,n,m,其中在p,q,a1,a2整数范围内,n和m在长整数范围内. Output 输出包含一行一个整数,即an除以m的余数. Sample Input
Luogu 1962 斐波那契数列(矩阵,递推)
Luogu 1962 斐波那契数列(矩阵,递推) Description 大家都知道,斐波那契数列是满足如下性质的一个数列: f(1) = 1 f(2) = 1 f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 请你求出 f(n) mod 1000000007 的值. Input 第 1 行:一个整数 n Output 第 1 行: f(n) mod 1000000007 的值 Sample Input 5 Sample Output 5 Http Luogu:htt
CJOJ 2255 【NOIP2016】组合数问题 / Luogu 2822 组合数问题 (递推)
CJOJ 2255 [NOIP2016]组合数问题 / Luogu 2822 组合数问题 (递推) Description 组合数\[C^m_n\]表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算组合数的一般公式: \[C^m_n=\frac{n!}{m!(n-m)!}\] 其中n! = 1 × 2 × · · · × n 小葱想知道如果给定n,m和k,对于所有
热门专题
设计一个使用重叠IO完成例程的服务器程序
sql int 自动采番哪里
c# 判断DataGridView选中了一行
华硕 ASUS RT-N16 OpenWrt 刷机教程
RedisTemplate和RedissonClient
eclipse robotframework集成
matlab查验是否为全空格
redis在虚拟机中的网络设置
kali linux 通过IP查询后台
ssh 转发C服务器通过A访问B的端口
html数字number
jjava实体中默认时间是什么
java base64转blob
netcore 入门
ios 免越狱脱线读写系统目录
ios调试内嵌原生app的h5页面
URL Schemes 用safari浏览器打开网页
linux安装jdk1.7用什么账号
matlab 追加写excel
debian系统信息