- 博客(10)
- 收藏
- 关注
原创 动态规划(DP)通俗讲解
参考 徐凯强 Andy动态规划中递推式的求解方法不是动态规划的本质。我曾经作为省队成员参加过NOI,保送之后也给学校参加NOIP的同学多次讲过动态规划,我试着讲一下我理解的动态规划,争取深入浅出。希望你看了我的答案,能够喜欢上动态规划。0. 动态规划的本质,是对问题状态的定义和状态转移方程的定义。引自维基百科dynamic programming is a method for solving a...
2018-06-29 22:05:44 17746 8
原创 递推求LIS
#include<iostream>using namespace std;int main() { int S[100], LIS[100] = { 0 }; LIS[0] = -1; int n, i, k, y = 0; cin >> n; for (i = 0; i < n; i++)cin >> S[i]; for (i = 0; i < n; i++) { if (S[i] == LIS[y])continue; i
2018-06-29 21:19:41 137
原创 信息解码(Message Decoding)ACM题目
分析:长度为1的串,可以放1个编码长度为2的串,可以放3个编码长度为3的串,可以放7个编码.....长度为n的串,可以放 n^2 -1 个编码思路:1. 用 1<<n 表示 2^n;2. 读取编码头:用codes[][]存储编码头;Len表示 长度为Len的串value表示 长度为Len的串的第value个值 例如:长度为 3 的第 2 个编码先一次输入多个字符,然后用循环调用g...
2018-06-22 21:46:09 2256 1
原创 ACM题目:救济金发放
思路:1. 使用数组que记录在队伍中的人,数组索引范围是 1~n;2. 用book标记离开队伍的人3.用 left 记录队伍剩下的人数,left=0的时候,就可以结束循环;3.分别从que[p]按顺序,que[q]按逆序遍历数组que,(初始化的时候p=0,q=n+1)。为了防止q和p超出数组索引范围,可以用取余数的方法:1. 顺序读取: p = (p-1+n-1)% n + 1; 2. 逆...
2018-06-20 17:56:01 623
原创 LCS算法
本文参考(菜鸟小筑)LCS问题即最长公共子序列问题,它不要求所求得的字符在所给的字符串中是连续的(例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子序列,则输出它们的长度4,并打印任意一个子序列)。事实上,最长公共子序列问题也有最优子结构性质。证明LCS的最优子结构:记:(字符串X) Xi=﹤x1,⋯,xi﹥即X序列的前i个字符 (1≤i≤m)(...
2018-06-05 21:34:01 2306
原创 求循环小数的表示以及循环节长度
问题:输入整数a和b,输出a/b的循环小数表示以及其循环节长度。例如 a=5 b=43 小数表示为0.(116279069767441860465),循环节长度为21分析:模拟长除法的计算过程。①mod = a%b;②小数 = (mod*10) / b;③mod = (mod*10)%b;循环②③步,当出现重复的余数的时候,也就是循环节出现了例如 3/71. mod = 3%7 = 3;2. m...
2018-06-04 21:28:29 8121 1
原创 求最小Hamming距离的DNA序列
提示:两个等长字符串的Hamming距离,等于两个字符串相同的位置中,字符不同的个数。(如ACGT和GCGA的Hamming距离为2)问题:TATGATACTAAGCTACAAAGATCCTGAGATACTAAGATGT求一个 与上面所有DNA序列 Hamming距离最小 的DNA序列 解:TAAGATAC思路:找到每一列中出现最多的字符,并把一个字符记录下来,当每一列出现最多的字符都记录下来后,...
2018-06-03 18:21:07 1096
原创 求分子量算法
本人是小白~ 喷轻点~分析:1.扫描字符串,用 s 记录当前字符2.如果遇到大写字母,则用 c 记录这个字母,方便下次遇到新的大写字母需要用到 c3.如果遇到数字串,用cnt记录这个数字串4.到下次遇到新的字母的时候,则 总质量+=(cnt*c的质量)cnt记录数字串:cnt=-1的时候,代表还没有开始记录。遇到一个 s 为 数字字符 的时候,如果cnt=-1 则 cnt = s - '0' ...
2018-06-02 09:50:56 1187 1
原创 周期串
分析:由周期串的规律可以得出,字符总数 总能整除 周期串字符数,则从第一个(i=0)字符开始遍历,遇到字符串大小 size%i==0,则有可能周期数为 i 。检验:可以通过该字符串与后面的字符串对比,如果全部都相同,则为周期串#include<iostream>using namespace std;int main() { char str[256]; int sz, i...
2018-06-02 08:17:39 216
原创 新人环状序列
本人是小白,还请大神多多指教~例子: 有一个长度为 n=3 的字符串 abc, 而环状的abc可以表示成 abc、bca、cab如果程序要在 abc里面获取到 abc、bca、cab ,则在a(包含a)开始向后读取3个字符串 在b(包含b)开始向后读取3个字符串在c(包含c)开始向后读取3个字符串b和c开始向后读取3个字符,读取超出数组范围怎么办?可以看成为 abcabc 从第一个字符index...
2018-06-02 07:35:24 250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人