05 2020 档案

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

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