09 2018 档案

摘要:Trie 计数+Trie,读清题意很重要 https://vjudge.net/problem/UVALive-5913 kmp AC自动机 模板:https://vjudge.net/problem/UVA-11488 https://vjudge.net/problem/UVA-11019 ht 阅读全文
posted @ 2018-09-29 10:24 wa007 阅读(174) 评论(0) 推荐(0)
摘要:对于每一条边,如果是树边,直接加入,否则,考虑最终的最短路会不会经过此边,如果会经过,就依此边的任意一个节点为初始点,在包含所有边的图中跑最短路,dis[a]+dis[b]即可(a,b为所求路径的两个点),dis[]为从该初始点出发到所有点最短距离的数组 在树边考虑最短路径时,需要用lca求最近公共 阅读全文
posted @ 2018-09-25 22:51 wa007 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 阅读全文
posted @ 2018-09-24 22:39 wa007 阅读(176) 评论(0) 推荐(0)
摘要://Dinic struct Edge{ int from,to,cap,flow; Edge(){ } Edge(int a,int b,int c,int d){ from=a; to=b; cap=c; flow=d; } }edges[maxm*2]; int n,m... 阅读全文
posted @ 2018-09-21 21:39 wa007 阅读(169) 评论(0) 推荐(0)
摘要:求第k短路模板 先逆向求每个点到终点的距离,再用dij算法,不会超时(虽然还没搞明白为啥。。。 #include<iostream> #include<cstdio> #include<cmath> #include<queue> #include<vector> #include<string.h 阅读全文
posted @ 2018-09-10 21:00 wa007 阅读(145) 评论(0) 推荐(0)
摘要:又一次写起了几何。。。。 特殊处理在于有可能出现多条线段交于一点的情况,每次考虑时,对每条线段与其他所有线段的交点存在一个set里,对每一个set,每次删除set.size()即可 重点在于判断两条线段的交点是否是一个整数点,需要特殊考虑,平行和y=kx+b关系式不能成立的情况 我的代码中没有判断除 阅读全文
posted @ 2018-09-10 18:35 wa007 阅读(198) 评论(0) 推荐(0)
摘要:可能写了个假算法 假设定义:含有一个欧拉路的图为类欧拉图 欧拉路的定义:一个无向连通图中,存在一条路径对所有边都遍历且仅遍历一次;判断方法:该连通图中度为奇数的点的个数不能超过2,即为0或者2 题目解法: 对每一条数据a,b,c,想象成a点与b点之间连了一天值为c的边,则此图共有4个点 问题变成求图 阅读全文
posted @ 2018-09-08 23:09 wa007 阅读(975) 评论(0) 推荐(0)
摘要:题目地址:http://codeforces.com/problemset/problem/1039/A 题目的关键在于理清楚思路,然后代码就比较容易写了 对于每一个位置的bus,即对于每一个i(i>=1 && i<=n) ,x[i]必然大于等于 i ,假设第 i 个车可以停在 x[i] 处,则对于 阅读全文
posted @ 2018-09-06 21:08 wa007 阅读(404) 评论(2) 推荐(0)
摘要:总感觉我这种做法会T,一直没写,看了其他人的题解也是这样,,,就果断写了,,可能数据不太深,或者玄学复杂度 题意即求xk-1长度的所有区间的最大值的和,对每一个i(数组下边),他对答案的贡献数量就是在以ar[i]为最大值的最大子区间中所有符合条件的区间数量 求ar[i]的作用区间,即,求最小的l,对 阅读全文
posted @ 2018-09-04 17:58 wa007 阅读(261) 评论(0) 推荐(0)
摘要:STL的强大不得不服,应该还有更优的做法 倒着查询,刚开始把所有边和点都考虑在内,之后依次从后往前删边,然后删除不符条件的点 重点在于如何删除不符合条件的点,我用set<pair<int,int>> 存储每个点和他的度(与他相连的点数),每次删除一条边时,减少两个点的度,依次从set中取出度最小的点 阅读全文
posted @ 2018-09-03 14:30 wa007 阅读(316) 评论(0) 推荐(0)