- 博客(9)
- 收藏
- 关注
原创 L3-011 直捣黄龙(纯DFS)
因为迪杰斯特拉要考虑的关键字太多,并且还有一个关键字为路径长度,不好写。可以尝试以下搜索,当然这是因为这题的数据量并不大。比较简单,详情看注释#include<iostream>#include<vector>#include<stack>#include<algorithm>#include<queue>#include<unordered_map>using namespace std;typedef long l
2022-04-22 13:07:42
340
原创 1004 To Buy or Not to Buy - Hard Version
DFS暴力写法同主流暴力不太一样初始化用二维数组a,b,c统计每个字符串所含有的数字个数,小写字母个数,大写字母个数,注意是从1开始存放。以便将目标数组的所要的数组个数,小写字母个数和大写字母个数存放再a[0]、b[0]、c[0]中。calc便于统计。搜索思路依次搜索目标字符串的每个字母p[u]:若当前字符已经小于0,不需要再搜索了,直接进入下一层u+1否则,再从1到n遍历所能选择的字符串,若当前字符串含有p[u],则选择该字符串,将a[0]、b[0]、c[0]减去相应的数字,并把vis[i
2022-03-17 20:56:49
453
原创 1002 Business (35 分)
按照截止时间排序后01背包加空间优化#include<iostream>#include<algorithm>using namespace std;const int N=55;const int M=1e5+5;int n,m;struct node{ int p,l,d; bool operator<(const node& t) const { return d<=t.d; }}a[N]
2022-03-15 19:53:09
310
原创 ACwing 闪烁 矩阵快速幂
题外话:本来要发在Acwing上的,但是实在不会用Acwing上的MARKDOWN,改发在CSDN上矩阵快速幂简单的介绍以下矩阵快速幂(也帮助自己回顾以下,已经会了的同学自行跳过)原理:由递推关系提到一个递推矩阵C,初始状态为A,每次执行一次就相当于(注意C矩阵在前)A=C∗AA=C*AA=C∗A执行n次后的结果矩阵B就等于B=Cn∗A B=C^n*AB=Cn∗A自然而然的想到使用快速幂来对这个过程进行加速算法共分为两个部分:如何得到递推矩阵和矩阵的快速幂,先从简单的快速幂介绍快速
2022-01-14 03:07:03
344
原创 杭电多校Fall with Trees
题目大意在坐标系中给定一颗满二叉树,计算它的面积。就为一个三角形加多个梯形组成。题解公式推导如下:令每层高度为h,第二层宽度为a。就有第一个三角形的面积为S三角形=12ahS_{三角形}=\frac{1}{2}ahS三角形=21ah同时打表得第1层(即实际中的第三层,此处方便推导)宽度为a∗(1+12)a*(1+\frac{1}{2})a∗(1+21)第2层宽度为a∗(1+12+1+14)a*(1+\frac{1}{2}+1+\frac{1}{4})a∗(1+21+1+41)第n层
2021-08-10 20:59:20
330
2
原创 杭电多校 I love playing games
题目题目大意给定一个无向图,每一轮,两人从x,y两点有先后地选择不移动或移动到相邻点(两人都进行选择才算一轮)。当最后一轮结束时,若两人都达到z点或都到不了z点,则平局输出2。若先手的人到了,后手未到输出1,反之输出3。两人除了起点和终点外,不能处在相同节点上。题解通过BFS找到z到x,y的最短路径分别为dis[x],dis[y]。若dis[x]!=dis[y]则谁路劲短谁获胜。若dis[x]==dis[y],则先手必不败,可能平局。简单证明:一 两人最短路除z点外无交点dis[x]
2021-07-24 10:43:01
357
原创 Educational Codeforces Round 110 C. Unstable String
Educational Codeforces Round 110题目链接参考题解题面unstable string是指由0,1构成的字符串,并且相邻的字符不同。beautiful string是指由0,1,?构成的字符串,?能由0或1代替,且代替后是unstable string。输入字符串s由0,1,?构成,求解s中的所有beautiful子串。思路简化状压dp状压dp是当前状态由上一个合法的状态转移来的。集合表示:dp[i][j]当前以第i个位置结尾的连续的状态是j的beautif
2021-06-06 21:44:47
264
5
原创 Educational Codeforces Round 109 (Rated for Div. 2) D. Armchairs
D. Armchairs原题链接题面:给一个长度为n的01序列,1表示已被占用,0表示空缺。可以将1移动到0的位置,代价为其下标差的绝对值。求将一开始被占用的位置空出来所需的最小花费。思路用数组pos1来储存1的下标,数组pos2来储存0的下标。动态规划分析思路:集合表示:dp[i][j]表示前i个1和前j个0匹配方案;属性:最小值集合的划分:dp[i][j]可以分为两部分:第i个1一定与第j个0匹配,得到dp[i-1][j-1]+abs(pos1[i]-pos2[j]);
2021-05-18 13:15:43
164
原创 POJ1094
POJ1094简单 的拓扑排序判断有向图是否有环,可是我wa了两天。题意:先给出n,m两个正整数,随后m行给出m个偏序关系,每次输入都得判断是否有环,是否能确定出n个元素的偏序关系,最后再判断是否能确定出n个元素的偏序关系。大概思路:该题首先有个优先级:是否已经能根据以上条件能确定出唯一的偏序关系;是否有环,有环则直接输出;若条件1满足则直接输出偏序关系,若满足条件2则输出有环,若两者都不满足则继续执行,直到m行输入结束后,都不能判断的话输出无法判断。核心代码如下:int topos
2021-04-14 20:38:08
81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人