摘要:
题意:给出order数n给出n行order<3种>第一种:travel A m a1 .. ai .. an表示来了同学A 其中知道m个信息 信息号为a1 .. ai .. an..第二种:share A B表示 A和B同学分享了她们共有的信息..其中信息可传递..并且和share先后无关..第三种:check A 表示问A同学知道了多少条信息思路:用map<string, int> 来让同学名字变成序号..用set来对信息去重..用并查集使资源共享~<可节省内存~>用set里面的size可以求的根节点的大小~即share后掌握的知识点..Tips:set里 阅读全文
摘要:
题意:给出n表示geeks人数..也是位置总数..给出a1 a2 .. ai .. an 表示第 i 个人想要坐从左往右第 ai 个空位..给出m表示询问的个数..给出m个数b1 b2 .. bi .. bn 表示询问第 bi 个人的位置..思路:如果模拟过程..应该是先按要求排好位置..然后输出位置值..排好位置的过程就用到了二分..用树状数组表示当前位置前有多少个空位..然后二分找出满足当前位置前面空位有 ai 个的位置..Tips:记得安排好第i个geeks的位置后要modify树状数组..Code:View Code 1 #include <stdio.h> 2 #incl 阅读全文
摘要:
题意:给出点和边的个数n, m给出相连点的边..形如(a, b)求最少删去多少个点可以使存在不相邻的两个点不连通..思路:拆点+求最大流..①. 构造一个容量网络N②. 原图中的每个顶点变成网络N中的两个顶点v' 和 v'', 顶点v' 和 v''之间存在一条弧容量为1<确保这个点只可以路过一次..>③. 原图G中的每条边e(u, v), 在N中都有对应弧为e'<u'', v'> 和 e''<u', v''>, e' 和 e' 阅读全文