摘要:
题目大意:给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值这里因为查询和点都特别多,所以希望能最后一次性更新节点的值我们可以这么考虑,每次询问中找到x,y的最近公共祖先,那么我们将val[x] +=w ... 阅读全文
摘要:
题目大意:多点形成一棵树,树上边有权值,给出一堆询问,求出每个询问中两个点的距离这里求两个点的距离可以直接理解为求出两个点到根节点的权值之和,再减去2倍的最近公共祖先到根节点的距离这是自己第一道lca题目学习了两种方法第一种在ST算法,利用RMQ思想预处理 1 /*在线ST算法*/ 2 #pragm... 阅读全文
摘要:
题目大意:给定每一个人能支付的房子价值,每个人最多且必须拥有一套房子,问最后分配房子可得到的最大收益抄了个别人的KM模板,就这样了。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define ... 阅读全文
摘要:
题目大意:找到树上点对间距离不大于K的点对数这是一道简单的练习点分治的题,注意的是为了防止点分治时出现最后分治出来一颗子树为一条直线,所以用递归的方法求出最合适的root点 1 #include 2 #include 3 #include 4 #include 5 #include 6 ... 阅读全文
摘要:
题目大意:有一对新人结婚,邀请n对夫妇去参加婚礼。有一张很长的桌子,人只能坐在桌子的两边,还要满足下面的要求:1.每对夫妇不能坐在同一侧 2.n对夫妇之中可能有通奸关系(包括男男,男女,女女),有通奸关系的不能同时坐在新娘的对面,可以分开坐,可以同时坐在新娘这一侧。如果存在一种可行的方案,输出与新娘... 阅读全文
摘要:
题目大意:给定n个点,给每个点都安排一个相同的正方形,使这个点落在正方形的下底边的中间或者上底边的中间,并让这n个正方形不出现相互覆盖,可以共享同一条边,求这个正方形最大的边长这里明显看出n个点,每个点都只有在上底边和下底边两种选择,所以这里是2-sat解决这里全都是整数,而因为点在正方形的中间,所... 阅读全文
摘要:
题目大意:在圆上顺时针n个点,给定m个连接,可以通过圆内或者圆外相交,问能不能找到一种方式,使这些连接的边都不相交这里很容易看出的是,这些边只有在圆外或者圆内两种连接方式,而且必须选择其中一种所以2-sat以这些边作为连接点,向内连接为2*i,圆外连接为2*i+1自己画画图可以找到规律if(b[i]... 阅读全文
摘要:
题目大意:就是根据它给的程序的要求,不断平移,缩放,旋转三维的点,最后计算出点的位置这里主要是要列出三种转换方式的齐次矩阵描述平移translate tx ty tz1 0 0 00 1 0 00 0 1 0txty tz 1缩放scale a b ca 0 0 00 b 0 00 0 c 00 0... 阅读全文
摘要:
题目大意:给定一个多边形,给定一个圆的半径,要求在多边形中放置两个同样半径的圆,可相互覆盖,但不能超出多边形的范围,希望两个圆的面积覆盖和最大输出任意一组满足的圆的圆心点如果两个圆不相互覆盖,那么必然达到最大面积如果相互覆盖,可以换一种方式考虑,因为两个圆是一样的,两个圆的距离越长,那么相互覆盖的面... 阅读全文
摘要:
二分所能形成圆的最大距离,然后将每一条边都向内推进这个距离,最后所有边组合在一起判断时候存在内部点 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 #def... 阅读全文