摘要:
题意: 给出一个N*M的矩阵,一开始在矩阵内有k个chip,位置给出! 一次操作,Patya 可以把所有chip都向同一方向移动一步! 如果chip到了边界,那么chip就保持原地不动! 几个chip可以占据一个格子! 对于每个chip,Petya选择一个它应该访问的位置,但不一定是最后访问的! 你 阅读全文
摘要:
POJ2387 Til the Cows Come Home (最短路裸题) #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; const int maxn=1010 阅读全文
摘要:
题意: 给出一颗树,以1为根节点。 每次询问给出一组节点,询问是否存在从根节点开始的链使得所有节点本身或父亲在链上 题解: 猜想这条链的终点一定是最深的那个节点。 考虑用倍增LCA做。 遍历询问序列,比较当前节点和最深节点的LCA与当前节点的高度差,如果大于1直接输出NO。 时间复杂度是O(NMlo 阅读全文
摘要:
A.Structure of a Binary Tree 模拟题,按照题意模拟即可 #include<bits/stdc++.h> using namespace std; const int maxn=1014; struct node { int data; node * left; node 阅读全文
摘要:
题意: Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司。这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即当经理i和经理j同时被雇佣时,经理i会对经理j做出贡献,使得所赚得的利润增加Ei,j。当然,雇佣每一 阅读全文
摘要:
题意: 给出N个点,和每个点物品的售价,现在有一个商人,要从u点到v点,他想在路上多赚点钱。他可以从一个城市买物品,然后再卖到另一个城市,但买卖只允许一次,且不能回头走 问最多能赚多少 题解: 对于一个询问, 假设u,v的LCA是f 有三种可能, 一个是从u到f 买卖了。 一个是从f到v买卖了, 一 阅读全文
摘要:
题意: Dark 是一张无向图,图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark 有 N-1条主要边,并且 Dark 的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark 还有 M条附加边。 你的任务是把 Dark 斩为不连通的两部分。一开始 Dark 的附加边 阅读全文
摘要:
LCA裸题,读入比较毒瘤 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn=1e5; int N; int head[maxn]; int tol; struct no 阅读全文
摘要:
模板题,注意要先判断根的编号。 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int maxn=1e5; int N; int head[maxn]; int tol; struct 阅读全文
摘要:
题意: 一棵无向树,输入点数和操作数,下面一行n个值代表每个点的权。下面n-1行是树边 操作分为 0 x w ,表示把点x的权改为w; k a b , 求出,从a到b的路径中,第k大的点权 题解: 对于每组询问,先求出两点的LCA,再从两点分别向LCA遍历,保存路径上所有的点权,排序输出第K大即可~ 阅读全文