![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
简单算法好看解
弋墨尘
这个作者很懒,什么都没留下…
展开
-
A1046 Shortest Distance
题目描述一个圈,给出相邻点的距离,求某两点间的最短距离算法笔记中思路很简洁1)最小值即为dis(left,right)与sum-dis(left,right)中的较小值2)设立数组dis[i],其中dis(left,right)=dis[right - 1] - dis[left - 1]放上书中代码:#include <cstdio>#include <algor...原创 2019-04-06 19:42:12 · 118 阅读 · 0 评论 -
A1076 Forwards on Weibo(图/BFS)
题目描述题意:给出每个用户及其关注的用户列表,求当某用户发布消息时,转发用户最多有多少个(给出转发层数上限)注意:建图时,如果a关注了b,要建立b指向a的有向边,即a发布消息时,b能够转发#include<cstdio>#include<cstring>#include<vector>#include<queue>using names...原创 2019-06-16 17:53:06 · 58 阅读 · 0 评论 -
A1030 Travel Plan(最短路径/Dijkstra/模板题)
题目描述题意:N个城市,M条道路,给出M条道路的距离和花费,求从起点到终点的最短路径,若有多条最短路径,求花费最小的那条两种做法:一种,直接Dijkstra,求出花费最小的最短路径;第二种,先Dijkstra求出所有最短路径,再用DFS求出花费最小的那条1.Dijkstra:#include<cstdio>#include<cstring>#include<...原创 2019-06-19 20:16:07 · 297 阅读 · 0 评论 -
A1068 Find More Coins(动态规划-背包问题)
题目描述有N枚硬币,给出每枚硬币的价值,现在要用这些硬币去支付价值为M的东西,问是否可以找到这样的方案,使得选择用来支付的硬币的价值之和恰好为M。若存在,输出字典序最小的那个。01背包问题,在此题中价值c[i]和质量w[i]等价该题一开始困扰我的是如何输出字典序最小的那个,后来才了解到做法可以是一开始将这些硬币从大到小排列,然后再倒着查看每一件物品是否放入背包。为什么从大到小排列来进行状态转...原创 2019-05-28 12:23:14 · 245 阅读 · 0 评论 -
A1020 Tree Traversals(二叉树遍历)
题目描述给出一棵二叉树的后序遍历序列和中序遍历序列,求这棵二叉树的层序遍历序列-了解如何使用二叉树的后序遍历(or先序)和中序遍历生成二叉树-了解如何生成二叉树的层序遍历序列#include<cstdio>#include<queue>using namespace std;int post[32],in[32];int n;struct node{ ...原创 2019-05-12 11:53:00 · 106 阅读 · 0 评论 -
A1107 Social Clusters(并查集)
题目描述题意:有N个人,每个人喜欢若干项活动,如果两个人有任意一个活动相同,那么就称他们处于同一个社交网络,求这N个人总共形成了多少个社交网络非常经典的并查集问题,有点小变化的是统计集合个数和每个集合有多少人,只要开个数组统计以某节点为根的集合有多少个即可,代码中使用isRoot数组实现#include<cstdio>#include<algorithm>#inc...原创 2019-05-14 11:40:44 · 81 阅读 · 0 评论 -
A1056 Mice and Rice(queue)
题目描述借用一下算法笔记中的题目解释注意的点有:1.当老鼠总数不能整除NG时,对于group的处理2.每组晋级一只老鼠,所以进入下一轮的老鼠为group只,这一轮淘汰的老鼠排名为group+1.在程序中处理方式是,每轮都把所有老鼠的排名赋值为group+1,这样晋级到下一组的老鼠可以再更新rank,而淘汰的排名即为group+13.使用queue保存每轮顺序,直到只有一只老鼠,它的排名...原创 2019-05-08 22:20:24 · 103 阅读 · 0 评论 -
A1088 Rational Arithmetic(分数四则运算-模板题)
题目描述题目很简单,就是针对分数的四则运算输出结果,代码也很容易理解,注意一些细节容易出错:1.分数化简,涉及到最大公约数2.负数的表示3.带分数的形式输出分数的四则运算理解这道例题就足够了#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll gcd...原创 2019-05-04 16:17:29 · 169 阅读 · 0 评论 -
A1059 Prime Factors(质因数分解-模板题)
题目描述示例输入输出最基础的质因数分解,需要注意的有:1.int范围内质因子分解素数表开到10^5就足够2.注意处理大于sqrt(n)部分的质因子直接上代码#include<cstdio>#include<math.h>const int maxn=100010;bool isPrime(int n){ if(n==1) return fal...原创 2019-05-05 11:24:33 · 139 阅读 · 0 评论 -
A1063 Set Similarity(set基本用法)
题目描述这题主要是熟悉一下set的特性和用法(insert,size,find)要注意的一点是printf输出%时要输**%%**#include<cstdio>#include<set>using namespace std;const int N=51;set<int> st[N];void compare(int x,int y){ ...原创 2019-05-05 11:55:23 · 371 阅读 · 3 评论 -
A1048 Find Coins(散列/二分查找/two points)
题目描述给出n个正整数和一个正整数m,问n个数字中是否存在a+b=m(a<=b),有的话输出a最小的一对数题目很简单,主要是想怎么用不同方法解决这道题,以及进一步熟悉这些基础算法:1、散列牺牲了空间,换取时间优势#include<cstdio>#include<algorithm>using namespace std;const int N=100...原创 2019-04-17 22:26:26 · 161 阅读 · 0 评论 -
A1093 Count PAT's(递推关系预处理)
题目描述给一串包含PAT的字符串,求共可以形成几个PAT?本题数目较大,直接暴力不可取,可以想到求对于任何一个A来说,以其为中心形成的PAT数目是它之前的P的个数与他之后的T的个数的乘积,因而我们可以开两个数组分别计算每个数之前的P的个数和之后的T的个数。为了减少代码量,第二次循环求每个数之后的T的个数的过程中可直接计算答案,不用再另外开数组。#include<cstdio>...原创 2019-04-21 17:02:11 · 132 阅读 · 0 评论 -
A1067 Sort with Swap(0, i) (贪心)
题目描述题目给定一个序列0,1,……,N-1,要求通过两两交换(0和另一个数),使其变为递增序列题目意思很简单,问题是如何用尽可能最简单的策略来实现。1.若0在i号位(i≠0),则找到i所在位置,将0与i交换2.若0在0号位,则找到第一个不在自己位置的数,将0与其交换,这样又回到了1所在的情况,也不会对已经到达自己位置的数字产生影响以下为算法笔记中的模拟过程和参考代码:另外,注意代码...原创 2019-04-21 16:25:46 · 389 阅读 · 0 评论 -
A1033 To Fill or Not to Fill(贪心)
题目描述求最小油量花费的问题基本思想:自己做的话的确会忽略很多细节,参考代码是引用算法笔记中的,注释写的很详细了#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=510;const int INF=1000000000;...原创 2019-04-21 15:34:07 · 142 阅读 · 0 评论 -
A1065 A+B and C (64bit)
题目描述A,B,C数据范围为[−2^63 , 2^63],判断A+B是否大于C一开始看到题目,比较难处理A+B超出long long 的情况,后来算法笔记上给出了比较好的解答,只要判断是否溢出就可以了书上的思路: ① 当 A + B ≥ 263 时,显然有 A + B > C 成立,但 A + B 会因超过 long long 的正向最大值而发生正溢出。由于题目给定的 A 和 B ...原创 2019-04-06 19:58:23 · 147 阅读 · 0 评论 -
洛谷P1141 01迷宫(dfs连通)
题目描述迷宫问题,但是数据量开的很大,不可能每次都重新查一遍,所以要做优化。优化的过程参考了网上的思路,在每一次dfs时路过的每一个点记录此次dfs的序号,由此若下次碰到点已经被标记过,则可以查询这个序号所代表的答案。#include<cstdio>#include<cstring>#include<algorithm>using namespace ...原创 2019-06-30 17:49:21 · 479 阅读 · 0 评论