摘要:
思路: 链剖+线段树裸题重链的标号就是DFS序所以查子树的时候每回就 query(change[x],change[x]+size[x]-1) 就好了剩下的应该都会吧。。//By SiriusRen#include #include #include using namespace... 阅读全文
摘要:
思路: //By SiriusRen#include #include #include using namespace std;int n,m,st=1,a[6666],b[6666],l,r,ans,vis[6666],Mid,tot,sum[6666];bool dfs(in... 阅读全文
摘要:
思路: 搜索就好(注意不要枚举太多东西)//By SiriusRen#include using namespace std;int n,point[10],ans[10][10],answer;bool check(){ for(int i=1;in||y>n){ ... 阅读全文
摘要:
思路: 先DFS一遍 对于每一个点 找到begin 和end(DFS进的时候的cnt 和出的时候的cnt)每回修改的时候 改begin上边的权值 查的时候查 [begin,end]呃 如果我说得不清楚 请看http://blog.csdn.net/zhang200... 阅读全文
摘要:
思路: 先把所有的加油站 push进按weight排序的优先队列里 对于每个不是加油站的点 找到到它的点的最短路以及它来源的加油站 如果x和y有边 且x和y加油站的来源不一样 则它可以连边跑一边Kruskal倍增查一下 搞定了(注意图可能不连通)//By SiriusRe... 阅读全文
摘要:
思路: 先反向建图 Dijkstra一遍 求出h数组 再正向建图 A_star一遍 搞定//By SiriusRen#include #include #include #include using namespace std;#define int long long#... 阅读全文
摘要:
思路: Tarjan求出来点双&割点 判一判就行了//By SiriusRen#include #include #include #include using namespace std;#define int long long#define N 66666#define ... 阅读全文
摘要:
思路: 权值线段树 (找中位数用的) 记录下出现的次数和sum一定要注意 有可能中位数的值有许多数 这怎么办呢 (离散化以后不去重就行了嘛…….) (为什么他们想得那么麻烦)//By SiriusRen#include #include #include using na... 阅读全文