首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
51nod 1554:欧姆诺姆和项链——题解
】的更多相关文章
51nod 1554 欧姆诺姆和项链
有一天,欧姆诺姆发现了一串长度为n的宝石串,上面有五颜六色的宝石.他决定摘取前面若干个宝石来做成一个漂亮的项链. 他对漂亮的项链是这样定义的,现在有一条项链S,当S=A+B+A+B+A+...+A+B+A的时候是漂亮的,这儿A,B是一些宝石串,“+”表示连接操作.S中有k+1个A和k个B组成.A和B可能是空串. 现在给出宝石串,问怎么切前几个才能得到一个漂亮的宝石项链.他切下来之后不会改变宝石的顺序. 样例解释: 在这个样例中前6个可以组成漂亮的串( A="", B="bca…
51Nod 1554 欧姆诺姆和项链 (KMP)
题意:中文题. 析:首先要使用KMP的失配函数 f ,对于长度为 i 的串,如果存在循环节那么 i % (i-f[i]) == 0,循环节的长度就是 i - f[i] ,当然次数就是 i / (i-f[i]),对于这个题,如果恰好是一个循环节,也就是 i % (i-f[i]) == 0,那么这个串一定是 SSSSSS...SSS的形式,要想出现 k+1 个 A,1 个A,可以看作是 k 个 AB和另外一个A,当然 A 可能是空串,也可能不是,那么要一共出现 k 次,也就是AB中一共包含 i…
[codeforces] 526D [51nod] 1554 欧姆诺姆和项链
原题 KMP 方法一: 听说是ex-kmp--来自学姐 ex-kmp是处理两个串s和t之间,t的每一个后缀在s中的最长前缀的长度的一个算法. 它很像manacher(至少我和学姐这么认为),记录了一个maxright,对于当前t中的位置i,如果他小于等于maxright,那么他的答案等于产生当前maxright的该位的答案,如下图. 然后如果当前位加上当前答案是大于maxright的,那么把答案减小maxright后进行暴力匹配. 如果他是大于maxright的,那么我们就暴力匹配,eg. 每一…
51NOD 1554 欧姆诺姆和项链 巧妙利用KMP
请戳这里! #include<cstdio> #define N 1000100 char s[N]; int n,k,nxt[N],ans[N]; int main() { scanf(); ,j=;i<=n;i++) { && s[j+]!=s[i]) j=nxt[j]; ]==s[i]) j++; nxt[i]=j; } ;i<=n;i++) { int cnt=i/(i-nxt[i]); ) if (cnt/k>=cnt%k) ans[i]=; els…
51nod 1554:欧姆诺姆和项链——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1554 题目: 有一天,欧姆诺姆发现了一串长度为n的宝石串,上面有五颜六色的宝石.他决定摘取前面若干个宝石来做成一个漂亮的项链. 他对漂亮的项链是这样定义的,现在有一条项链S,当S=A+B+A+B+A+...+A+B+A的时候是漂亮的,这儿A,B是一些宝石串,“+”表示连接操作.S中有k+1个A和k个B组成.A和B可能是空串. 现在给出宝石串,问怎么切前几个才能得到一个漂…
51nod 1548 欧姆诺姆和糖果 (制约关系优化枚举)
1548 欧姆诺姆和糖果 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 一天,欧姆诺诺姆来到了朋友家里,他发现了许多糖果.有蓝色和红色两种.他知道每颗红色糖果重Wr克,每颗蓝色糖果重Wb克.吃一颗蓝色糖果会给他带来Hb的欢乐值,吃一颗红色糖果会给他带来Hr的欢乐值. 欧姆诺姆最多只能吃C克的糖果,而且每一颗糖果不能只吃一半.现在他想通过吃蓝色和红色的糖果来获得最大的欢乐值. 样例解释:每一种糖果吃两颗即可.…
51NOD欧姆诺姆和项链——KMP算法(非水题)
>>点击进入原题测试<< 思路:好久不见,今天要开始真正写题了.这个题之前我的理解有点问题,导致写了很久最终都是一直都只能过样例.需要注意的是输出中每一个“1”都是和别的输出相互独立的,比如输入以下样例 输入样例: abababab 输出样例: 在输出字符串当中每一个“1”都代表原字符串中该位置以前包括该位置的字符都是满足题目要求的ABAB或ABABA类型. 刚开始没有理解好以上,导致我错误的理解是既然都能找到既然都是ABABA类型了,那肯定也是前缀也是ABAB,那我只需要找前缀为…
51nod——1548 欧姆诺姆和糖果
一开始以为是贪心,然后发现没法贪.暴力枚举肯定T,于是用约束关系优化: 假设wr >= wb, 第一种情况:wr >= sqrt (c), 则此时最多吃c / wr个r,且c / wr <= sqrt (c),这样从0到c / wr枚举r的数量即可.为什么不枚举b的数量,因为c/wr更小.这样就获得了一个n <= sqrt (1e9) 的O (n)解法. 第二种情况:wr < sqrt (c),设的wr >= wb自然 wb < sqrt (c),此时如果像上面那…
51nod1548 欧姆诺姆和糖果
思路: 只有兩種糖果,枚舉其中一種糖果的數量就可以得到一個可行解: 但總有一種糖果的數量是較少的,並且該數量小於sqrt(C): 簡單證明: 1.若有任一糖果的質量大於sqrt(C),則必定有一糖果的數量小於sqrt(C): 2.若兩種糖果質量均小於sqrt(C),則可能存在兩種糖果數量均大於sqrt(C)的解,但對於這種情況,可以做如下轉換: 因爲兩種糖果質量均小於sqrt(C),則必定可以找到一個數公倍數K(K<C),然後將K全部用其中一種糖填滿,以達到總質量不變的情況下令較少的糖果數量小於…
51NOD 1773:A国的贸易——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com/RabbitHu/p/9182047.html 参考2:题解 https://www.cnblogs.com/ivorysi/p/9178577.html (令$\oplus$表示异或) 设$dp[i][j]$表示第$i$天$j$编号城市货物数. 因为只有$i \oplus j$的答案有一个1才能…