摘要: a,b可以表示成a=x*2016+i b=y*2016+j;a*b=x*y*2016^2+x*2016*j+y*2016*i+i*j;其中除了i*j这一项,其他的项都是2016的倍数;事先建立两个数组保存两个区间中i,j的数目则在2016*2016中找i*j%201... 阅读全文
posted @ 2018-07-18 09:35 琳小羽 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 最短路的变形问题普通的最短路,选取离出发点最近的一个点对其他的点进行优化本题则每次选取最短的边作为计算的单位 ,对边的两端点所连接两条边进行优化。最后在与结点n相连接的边中选择最小的即是答案 #include #include#include#include#defi... 阅读全文
posted @ 2018-07-17 21:29 琳小羽 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 输出最小的注意一下,代码如下,水题不解释#include #include#include#include#include#include #define MM(a) memset(a,0,sizeof(a));using namespace std;const in... 阅读全文
posted @ 2018-06-09 20:36 琳小羽 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 实现:1,没有前驱的结点输出 2 从图中删除该顶点和所有出边 重复1,2直至所有顶点都输出。或不存在无前驱的顶点,后者代表有向图是有环的。(有向图判环)#include#include#include#include#includeusing namespace ... 阅读全文
posted @ 2018-06-09 17:06 琳小羽 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 如果图G中的一个路径包括每个边恰好一次,则路径称为欧拉路径。如果一个回路是欧拉路径,则称为欧拉回路。(即起点终点相同的欧拉路)有欧拉回路的称为欧拉图,有欧拉路径但无欧拉回路的称为半欧拉图。无向图是欧拉图:当且仅当图的结点度数都为偶数。// UVa10054 The N... 阅读全文
posted @ 2018-06-08 16:17 琳小羽 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求独轮车到达指定点的最短时间花费。步数应为5 的倍数。visit 仅仅表示到没到过? 应该是用来表示某个状态是否出现过,用四维数组表示,时间也一样。对于t的理解无论 前进还是左右转,时间都应该只加1;方 向: 0 1 3 ... 阅读全文
posted @ 2018-05-28 17:14 琳小羽 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有火,火会扩散,找出逃出迷宫的最短路两次Bfs,一次标记火的扩散,一次标记人的;人不会被火烧的判定条件是其步数小于火的步数。最后在迷宫的四条边界上找最小的ans#include#include#include#include#include#include#... 阅读全文
posted @ 2018-05-16 18:34 琳小羽 阅读(89) 评论(0) 推荐(0) 编辑
摘要: #include #include#include#include#includeusing namespace std;const int INF=1000000000 +10;const int N=10000;int inq[N],cnt[N],dis[N],p... 阅读全文
posted @ 2018-05-09 17:19 琳小羽 阅读(189) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;const int maxn=1000+10;const int INF=1000000000;struct Edge{ int v,d; Edge(int v,int d):v(v),d(d){} bool o... 阅读全文
posted @ 2018-05-08 21:33 琳小羽 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个图和图的一些子网,求连接图的最小花费;连接图--- kruskal 并查集给定有子网---运用二进制枚举子网具体思路: 先求一次MST,得到需要的边。枚举子网,通过并查集将子网中的点加入,再去需要的边中找剩余所需要的cnt条边选择最小的ans;源代码... 阅读全文
posted @ 2018-05-07 20:33 琳小羽 阅读(122) 评论(0) 推荐(0) 编辑