随笔分类 -  基本算法与基本数据结构

摘要:字符串S从任意位置开始扫描,到了结尾之后从头开始扫描,一共有n个串,他们彼此循环同构,为了求出串S的字典序最小的同构串,可以通过下面的线性时间复杂度的算法得到。 代码如下: #include<bits/stdc++.h> using namespace std; char s[100]; int m 阅读全文
posted @ 2020-06-17 18:06 WA自动机~ 阅读(268) 评论(0) 推荐(0) 编辑
摘要:递归求解,首先寻找最后一个加减号,拆分两段,若无最后一个加减号,寻找最后一个乘除号,这时这个表达式中只涉及括号外的乘除法(单个数算在内)。 这个算法实际上就是在将这个表达式分解成含括号的分量和含有乘法的分量,然后再按照乘法分量进行分解。 奉上案例: 1+3*4-(12-1)+20 代码如下: #in 阅读全文
posted @ 2020-06-17 09:23 WA自动机~ 阅读(192) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/107/ 其中涉及前缀和和排序以及中位数三种基本思想。 代码如下: #include<bits/stdc++.h> using namespace std; typedef long lo 阅读全文
posted @ 2020-06-15 15:30 WA自动机~ 阅读(207) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/670/problem/C 一个电影有影视语言以及字幕语言,有m部电影以及n个人,每个人只会一种语言,语言的编号是一个int数,如果一个人能听懂影视语言就会非常开心,如果他听不懂影视语言但是听得懂字幕语言他将会比较高兴,如果他两个 阅读全文
posted @ 2020-06-14 18:49 WA自动机~ 阅读(204) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/102/ 给定一个序列,只能对一个区间加一或者减一,问至少需要多少步使得所有数都变成一致的?有多少种一致序列? 利用差分,对一个区间进行加一或者减一的话,一定是一个差分+1加上另一个差分-1。 代码如下: #in 阅读全文
posted @ 2020-06-14 15:47 WA自动机~ 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/103/ 首先,我们需要明白一点,就是假设之前输入了一对(A,B),那么下一对数据(C,D)要么与(A,B)是包含关系,要么是交集为空集,否则的话就不能满足两对之间都能看到彼此。 通过相对关系建立差分,区间加法+ 阅读全文
posted @ 2020-06-14 15:20 WA自动机~ 阅读(213) 评论(0) 推荐(0) 编辑
摘要:描述:给出格子中的权值,求使用边长为R的正方形去覆盖,能得到的最大权值。 容斥原理求解即可。需要注意的是,由于内存的限制,无法再开一个5001*5001的数组来存储A,也就是原图,只能通过S数组以及递推关系进行求解,递推关系中要注意的是 边界情况下递推方程会衰减,并且容斥原理在边界位置也会衰减。 代 阅读全文
posted @ 2020-06-14 13:39 WA自动机~ 阅读(188) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=1958 代码: #include<iostream> #include<cstring> using namespace std; #define maxn 100 typedef long long ll; ll d[maxn],f[ 阅读全文
posted @ 2020-06-14 11:53 WA自动机~ 阅读(158) 评论(0) 推荐(0) 编辑
摘要:给定n个点的带权路径,求0到n-1的最短哈密顿通路,使用位运算以及动态规划的思想进行精确计算,实际上算法能处理的结点数量大约在20个,如果只需要获得 比较优的解可以通过神经网络、模拟退火等最优化理论的算法进行搜索。 代码如下: #include<iostream> #include<string.h 阅读全文
posted @ 2020-06-13 23:16 WA自动机~ 阅读(170) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示