摘要:
RMQ (Range Minimum/Maximum Query)问题是指: 对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,RMQ问题是指求区间最值的问题。 for循环遍历一边,然后输出,那么你很容易想到会被T飞掉; 1、先写一种比 阅读全文
摘要:
最近按算阶一起写吧,定好小计划; contest 1.递归实现指数型枚举; 从1~n中任意算出几个数,输出所有可能的方案; 这等价于选或不选,方案数2的n次方;所以递归分支选或不选,将尚未确定的整数数量减少1,从而转化为规模更小的问题; 2.递归实现组合型枚举; 从 1~n 这 n 个整数中随机选出 阅读全文
摘要:
题目; 用动态规划很容易将完成任务量作为dp的阶段,通过指派服务员,从当前i-1个任务转移到i个任务; 我们可以用一个四维数组f[i][x][y][z]来表示在完成当前任务i时,三个机器人分别在x,y,z的位置;每次由其中一个机器人向目标位置转移;取min值; 但是算法规模一点都不乐观; 我们想到在 阅读全文
摘要:
题目链接:CH6201 当时在海亮考试的第一题; 心得:其实一个算法是要真正理解这个思路和过程,而并不是单单知道它是用来写什么题的; 思路:n个节点有n-1条边,把这n-1条边按照权值从小到大排序,有点类似Kruskal算法的过程; 设当前扫描到边(x,y,z)时,若x,y不在同一个集合,此时应该合 阅读全文
摘要:
我觉得我还是分好几篇写这个东西吧-嗷; PACK 还有一个网站背包模板都有;AcW 1.01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 思 阅读全文
摘要:
我死辽为什么板子那么难调awsl 第一题: 注意空间要开4倍,写位运算的话左移右移不要打错啊; #include<bits/stdc++.h> using namespace std; #define N 500010 const int inf = 0x3f3f3f3f; template<typ 阅读全文
摘要:
1.白银莲花池 LUOGU 2411 第一种思路:当然我们可以写三个bfs a掉这个题,这写下来一二百行要有了吧; 第二种:我们可以在一个bfs中维护所有的信息,一个方向数组,从起点开始,向八个方向扩展,如果添加的莲花需要少,就更新当前的值,如果添加莲花一样多但所需步数更少,也更新,目标点方案数等于 阅读全文
摘要:
LUOGU 1955BZOJ 4195 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰 阅读全文
摘要:
先谈一下并查集:它是一种动态维护不重叠集合的做法,并且支持查询和合并的数据结构,是超级有用的; 1、find函数:查询某一个元素属于哪个集合; 2.union函数:将两个集合合并为一个大集合; 使用一个树形结构储存每一个集合,树上的节点表示一个元素,树根是代表集合,father数组表示当前i的父亲节 阅读全文
摘要:
LIS:最长上升子序列; 这个题我们很显然会想到使用dp, 状态设计:dp[i]代表以a[i]结尾的LIS的长度 状态转移:dp[i]=max(dp[i], dp[j]+1) (0<=j< i, a[j]< a[i]) 边界处理:dp[i]=1 (0<=j< n) 时间复杂度:O(N^2) #inc 阅读全文