[USACO 5.1.3]乐曲主题】的更多相关文章

Description 我们用N(1 <= N <=5000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,每个数表示钢琴上的一个键.很不幸这种表示旋律的方法忽略了音符的时值,但这项编程任务是关于音高的,与时值无关. 许多作曲家围绕一个重复出现的“主题”来构建乐曲.在我们的乐曲表示法中,“主题”是整个音符序列的一个子序列,它需要满足如下条件: 长度至少为5个音符 在乐曲中重复出现(可能经过转调,见下) 重复出现的同一主题不能重叠 “转调”的意思是主题序列中每个音符都被加上或减…
[题意] 给定一个长为n的序列,元素都是不超过88的正整数,求序列中主题的最大长度. 所谓主题是指在序列中出现了至少两次并且不相交的子串.特别的,主题可以变调,也就是说如果一个子串全部加上或减去一个数后与另一个子串相同,那么也认为它们是相同的. 对于100%的数据,n<=5000. [解法] 所谓的变调不过是升降趋势相同,直接来一发差分就好. 答案显然有单调性,长度越长主题越不容易出现,因此可以二分答案,每次只要查询长为ans的子串中是否存在相同且不相交的两个子串即可. 查询子串是否相同可以用哈…
正解:SA 解题报告: 传送门 这题三个条件嘛,那就一个个考虑下都解决了就把这题解决了嘛QwQ 那就直接分别针对三个条件写下各个击破就欧克辣? 1)长度大于等于5:求出答案之后和5比大小 2)不能有公共部分:记录连续的满足hei>=d的子串的SA,如果max-min>=d就说明没有公共部分了 3)在乐曲中重复出现(可能经过转调:做个差就是一样儿的了 那就先跑个SA然后二分一下长度,check就是判断有麻油连续的满足hei>=d的满足SA的max-min>d 然后就做完了,,, #i…
链接 \(Click\) \(Here\) 人生第一道后缀数组的题目.首先要对输入的串进行差分处理,差分后长度为(\(n - 1\))的相同子段就是原串中长度为\(n\)的相同(可变调)子段.求出来\(height\)以后,二分一个最大不相交重复子段长度,在\(can\_use\)里面维护长度为\(k\)的段划分,判断不相交只要用\(sa\)的差值算一下长度就好. \(p.s.\)细节真的很多. #include <bits/stdc++.h> using namespace std; con…
题目链接:戳我 Emmm......hash怎么做啊不会啊 这里是SA后缀数组版本的 就是先两两做差分,作为要处理后缀的数组.普通地求出来h数组之后,我们二分这个答案,然后判定是否合法就行了.是否合法即\(min(sa[j])+h[i]<max(sa[j]),j<=i\) 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include…
SA例题 题面 对于串 \(S\) 的两个子串 \(A\) 和 \(B\) ,满足 \(k = |A| = |B|\),\(\exists c \forall i\, a_i + c=b_i\),且 \(A\) 和 \(B\) 在原串中没有重叠,求最大的满足条件的 \(k\) 先考虑 \(\forall i\, a_i=b_i\) 的情况,二分 \(k\) ,如果在\(height\)上存在一段满足 \(\forall L \le i \le R \,height_i\ge k\),且存在 \(…
好吧,因为USACO挂掉了,所以我写的所有代码都不保证正确性[好的,这么简单的题,再不写对,你就可以滚粗了! 第一题是USACO 2.2.2 ★Subset Sums 集合  对于从 1 到 N 的连续整集合合,能划分成两个子集合,且保证每个集合的数字和是相等的.  举个例子,如果 N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:  {3} and {1,2}  26 这是唯一一种分发(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)  如果 N=7,有…
P2743 乐曲主题Musical Themes(poj1743) 然后呢这题思路其实还是蛮简单的,只是细节特别多比较恶心,忘记了差分带来的若干疏漏.因为转调的话要保证找到相同主题,只要保证一段内相对的差值不变,所以自然而然想到差分.注意细节.1.因为差分会带来负数,而负数在后缀数组里最初排名是会出问题的,所以要全搞成正的,+100即可2.因为最后一位不可以计算入差分数组里,所以不算,n要减1,同时二分答案后要记得把求得的最长差分长度加上一才是原数组长度3.最坑的地方是找不重复的最长字串,自然套…
步进电机以及无源蜂鸣器这些都需要脉冲信号才能够驱动,这里将用GPIO的PWM接口驱动无源蜂鸣器弹奏乐曲,本文基于树莓派Mode B+,其他版本树莓派实现时需参照相关资料进行修改! 1 预备知识 1.1 无源蜂鸣器和有源蜂鸣器 无源蜂鸣器:内部没有震荡源,直流信号无法让它鸣叫.必须用去震荡的电流驱动它,2K-5KHZ的方波PWM (Pulse Width Modulation脉冲宽度调制).5KHZ的电流方波就是每秒震动5K次,每一个完整的周期占用200us的时间,高点平占一部分时间,低电平占一部…
文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technology. 北京时间 11月16日 23:00,Connect();//2016 开始了,红衣主教 Scott Guthrie 和 Scott Hanselman 携众多微软技术大咖将为大家带来超级精彩的主题演讲.Visual Studio 2017在Docker上调试 , MS SQL on Linux ,Az…