05 2020 档案
摘要:H. Binary Median 题意:给定$n$,\(m\),及$n$个二进制数,在由0到$2m-1$这$2m$个二进制数中删掉这$n$个数,求剩余二进制数的中位数。 LL trans(char s[]) { int len = strlen(s); int j=0; LL ans=0; whil
阅读全文
摘要:POJ 2253 Frogger 题意:给$n$个结点的坐标,两两之间均可连通。找出在所有从结点$1$到结点$2$的路径中,最大边的权值(距离)最小的那一条,输出这个权值(距离)。 思路: POJ 1797 Heavy Transportation的镜像题……这里求的是最小生成树的最大边。 int
阅读全文
摘要:POJ 1797 Heavy Transportation 题意:给一个无向图,找出在所有从结点$1$到结点$n$的路径中,最小边的权值最大的那一条。输出这个权值。 思路: 方法有两种:一是最短路变形,二是最大生成树。 这里先给出最大生成树的代码。最大生成树可以保证生成“最小边的权值最大的那一条路径
阅读全文
摘要:线段树 线段树的根节点是整段区间,其它结点是由区间不断二分得到的子区间,其中叶子结点是区间的每个单独的元素。 存储 这里使用结构体存线段树。 struct Tree { int left, right; long long value, lazy;//结点维护的值及懒标记 }tree[4*maxn+
阅读全文
摘要:POJ 1511 Invitation Cards 题意:给一个有向图,求从结点1到各结点,再从各结点回到结点1的最小花费之和。 思路: 反向建边,没了。 一开始INF设成了0x3f3f3f3f,以为真的可以当无穷大用,洛谷那边WA一发才发现它表示的数量级是$10^9$,在本题不够用,遂改为1e17
阅读全文
摘要:SPFA 即队列优化过的Bellman-Ford算法,可以处理带负权图。 应用于单源最短路。 此外还可以进行负权环的判定,即若第n次操作仍可降低花费,则一定存在负权环。 //Bellman-Ford算法 for (int i = 0; i < n; i++) d[i] = INF; d[0] = 0
阅读全文
摘要:POJ 3268 Silver Cow Party 题意:给一个有向图及终点x,求各点与x之间往返最短路之和的最大值 思路:floyd当然是最吼的……但点太多,T了。于是反向建边,这样就可以通过求x的dij两次得到各点往x的最短路和从x返回各点的最短路。代码写得过于繁琐了。 struct node
阅读全文
摘要:POJ 1502 MPI Maelstrom 题意:给一个无向图,求从结点1到其他结点的最短路中的长度最大值 思路:裸的Dijkstra……记得先cin>>n再初始化,居然在这个弱智错误上卡了10分钟。atoi()在数字与字符混合输入这种情况好用,用来将一个字符串转为整型。 struct node
阅读全文
摘要:POJ 2387 Til the Cows Come Home 题意:给一个无向图,求从结点n到结点1的最短路 思路:裸的Dijkstra……邻接矩阵的话就在原来有向图的基础上多一次AddEdge操作就完事了 const int INF = 100000+1; const int maxn = 10
阅读全文
摘要:1.【板子题】POJ 2387 Til the Cows Come Home 2.【最小生成树】POJ 2253 Frogger 3.【最大生成树】POJ 1797 Heavy Transportation 4.【反向建边】POJ 3268 Silver Cow Party 5.【判正环】Curre
阅读全文
摘要:Floyd算法 计算含负权的图上的多源最短路,原理是动态规划。 设$D_{i,j,k}$为从$i$到$j$的只以$(1...k)$集合中的结点为中间结点的最短路的长度。 1.若最短路经过点$k$,则$D_{i,j,k}=D_{i,k,k-1}+D_{k,j,k-1}$; 2.若最短路不经过点$k$,
阅读全文
摘要:Dijkstra算法 (gif来源:戴克斯特拉算法 - 维基百科) 计算正权图上的单源最短路,同时适用于有向图与无向图 ①给源点标记$d[0]=0$,其他$d[i]=INF$ ②循环:每次都从d值最小的结点$x$开始,对于从$x$出发的所有边$(x,y)$,对于未被访问过的结点$y$,更新$d[y]
阅读全文
摘要:树: 连通且不含环的图 生成树:给定无向图G=(V,E),连接G中所有点,且边集是E的子集的树 最小生成树(MST):权值最小的生成树 Kruskal算法 ①将所有边按从小到大排列 ②依次考察每条边$(u,v)$。若$u$和$v$在同一个连通分量中,加入$(u,v)\(会成环,因此不能选择;**否则
阅读全文
摘要:"B Ternary String" 题意:给定一段只包含“1”“2”“3”的字符串,求其中包含三个数字的连续子串的最小长度。 思路:不断更新各数字的最近一次出现的位置,再用其中最大下标与最小下标计算这个合法子串的长度,再不断更新答案即可。 就,注意这种求最优解的题,有时候只需要在遍历过程中不断更新
阅读全文
摘要:"A Alarm Clock" 模拟,要注意的点都在注释里了
阅读全文
摘要:"A Alarm Clock" "B Ternary String" "C1 Simple Polygon Embedding"
阅读全文
摘要:"C1 Simple Polygon Embedding" 题意:给定n,求能包围(即正多边形的所有点均在正方形的里面或者边上)正2 n边形的正方形的最小面积。 思路: $n$为偶数时,正多边形必有四条边分别和正方形的四条边重合,根据这个算一下即可: $ans=2 (\frac{\frac{1}{2
阅读全文
摘要:"D Game With Array" 题意:构造一个长度为$N$,和为$S$的正整数序列,问能不能找到一个1~S的数$K$,使得数组里找不出一个子序列的和为$K$或者$S K$ 思路:构造一个前$N 1$项均为1,第$N$项为$S (N 1)$的数组即可。此时只要$S (N 1) N$,取$K=N
阅读全文
摘要:"A Sequence with Digits" $题意:给定a_1,递推式如下:a_n=a_{n 1}+max\{{a_{n 1}\}} min\{{a_{n 1}\}},其中max\{{a_{n 1}\}}/min\{{a_{n 1}\}}表示$$a_{n 1}的各个位数中最大/最小的那个。给定
阅读全文
摘要:"B. Same Parity Summands" "D. Alice, Bob and Candies" "E. Special Elements" "G. Special Permutation"
阅读全文
摘要:树状数组 求和 $C[i]$表示数组$A$中的一段连续的区间的和,具体是哪一段,由下式确定: \(C[i]=A[i-2^k+1]+A[i-2^k+2]+...+A[i]\) 其中$k$为$i$的二进制数中从最低位到最高位连续零的长度,如对于$8(1000)$,\(k=3\) $SUM[i]$表示数组
阅读全文
摘要:"F. Decreasing Heights" 题意: 给定一个$n m$的地图,每个格子有初始高度。只能向右或向下移动,且要求第$i+1$步的高度必须比第$i$步恰好高$1$。每次操作可以使得任意一个格子的高度减$1$。问最少需要几次操作,使得地图中存在由$(1,1)$到$(n,m)$的路径。 思
阅读全文
摘要:"D. Constructing the Array" 题意: 给定一个长度为n的全0数组$a$,每次进行以下操作直到所有元素均不为零:在第$i$次操作中,取最长的全为0的一段子序列(优先取最左边的),令$a[\frac{len}{2}]=i$。其中$len$为偶数,取$l+r$或$l+r 1$。
阅读全文
摘要:"E. K periodic Garland" 题意:给定长度为n的01字符串,每次操作可以改变一个字符的状态,问使字符串中相邻1的距离为k的最小操作次数 思路: DP。 $pre[i]$记录前$i$项中$1$的个数 $dp[i][0]$为使得前$i$项都合法,第$i$位为$0$时的最小操作次数 $
阅读全文
摘要:"D Phoenix and Science" 题意: 初始有1个质量为1的细菌,每次可以选任意个细菌进行分裂,分裂后所得的两个细菌质量均为原细菌的一半。选完之后现有全部细菌质量+1。问最少操作几次可以使得细菌总质量为n。 思路: 简化题意:设第$k$次操作后细菌总质量为$sum$,细菌数为$x$,
阅读全文
摘要:"C. Phoenix and Distribution" 题意 :给定长度为n的字符串s,将s任意拆分成k个部分,求k个部分中字典序最大的最小字典序 思路: 因为是任意拆分,所以将s中的字母从小到大排序,那么字典序最小的字母为s[1],记它的个数为p 实际上要求的还是最小字典序,那么在构造这k个部
阅读全文
摘要:"C.Orac and LCM" 题意: 给定一个长度为$n$的数组,求$gcd\{{lcm(a_i,a_j)|i using namespace std; const int maxn = 3e5 + 10; typedef long long LL; LL gcd(LL a, LL b) {re
阅读全文
摘要:[Codeforces Round 640 (Div. 4) G. Special Permutation](https://codeforces.com/contest/1352/problem/G) 题意:输出一个全排列,要求相邻数字之差的绝对值≥2且≤4. 思路: 不难发现n必须≥4,且n=4
阅读全文
摘要:[Codeforces Round 640 (Div. 4) D. Alice, Bob and Candies](https://codeforces.com/contest/1352/problem/D) 题意:两个人轮流吃数组,一个从左端开始(第一次只吃a[1]),另一个从右端开始,吃掉的元素
阅读全文
摘要:[Codeforces Round 640 (Div. 4) E. Special Elements](https://codeforces.com/contest/1352/problem/E) 题意:给定元素个数8000的就不要装了,没必要并且会越界
阅读全文
摘要:[Codeforces Round 640 (Div. 4) B. Same Parity Summands](https://codeforces.com/contest/1352/problem/B) 题意:给定和n与数字个数k,问能否有k个偶数/奇数之和为n 思路:先填k 1个1或者k 1个2
阅读全文

浙公网安备 33010602011771号