[SDOI2019]热闹又尴尬的聚会 链接 luogu loj 思路 第一问贪心?的从小到大删除入度最小的点,入度是动态的,打个标记. 当然不是最大独立集. 第二问第一问的顺序选独立集,不行就不要.选出来的一定是满足不等式的. 每次最多删除p+1个,独立集个数是\(\lceil \frac{n}{p+1} \rceil >= \lfloor \frac{n}{p+1} \rfloor\) 代码 #include <bits/stdc++.h> using namespace std; c…
P5361 [SDOI2019]热闹又尴尬的聚会 出题人用脚造数据系列 只要将\(p\)最大的只求出来,\(q\)直接随便rand就能过 真的是 我们说说怎么求最大的\(p\),这个玩意具有很明显的单调性的吧 直接二分一下\(p\)的值,然后将其和他所以相连的所有度数\(>=p\)加进去, 可能最后有一些的点的实际度数\(<=p\) 我们就把他的贡献减掉,再出现再减 每个点只会入队一次 数据太弱,\(q\)直接随机吧 时间复杂度\(O(T(nlogn+rand)\) #include<c…
据说原数据可以让复杂度不满的暴力O(Tn^2)过掉……O(Tn^2)方法类似于codeforces一场div2的E题 有一种比较好的方法:每次找出原图G中度最小的点加入q,然后将相邻的点加入新图G'.这显然能够得到一个最大的独立集.而p可以在维护度最小的点最大这一过程中,把G的所有点加入集合p.因为set带一个log,所以复杂度为O(Tmlogn). 证明:满足(p+1)(q+1)>n即可.删除的q节点中d的度数和满足Σ(d[i]+1)=n,其中i∈q,然后max{d[i]}q>=n,于是(m…
原题传送门 构造题. 明显p,q都越大越好 我们考虑每次取出度最小的点,加到尴尬聚会的集合中(因为把与它相邻的点全删了,不珂能出现认识的情况),把它自己和与自己相连的点从图上删掉(边也删掉),记下这个点的度,最后找尴尬聚会中度数最大的点,把它及在它之后删除的点加入热闹的聚会的集合中,这时p就是这个点的度数.这时p,q都较大,就珂以过了,正确性我也不会证明 #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define N 10005 #defin…
热闹度\(p\)子图中最小的度数,尴尬度\(q\)独立集大小,之间的约束 \[ \begin{aligned} \lfloor n/(p+1)\rfloor\le q &\rightarrow \lceil(n-p-1+1)/(p+1)\rceil\le q\\ &\rightarrow \lceil(n-p)/(p+1)\rceil\le q\\ &\rightarrow (n-p)/(p+1)\le q\\ &\rightarrow n-p\le pq+q\\ &…
分析 构造方法 (截图自UOJ群) 可以使用std::set维护这个过程,不过据说可以做到\(O(n+m)\).. 正确性证明 题目中的要求等价于\((p+1)(q+1) > n\) 设每次找出地度数最小的点的被删除时的度数分别为\(d_1,d_2,...,d_q\),显然用这些点可以构造出一个尴尬度为\(q\)的方案. 并且,我们有: \[\sum_{i=1}^{q}(d_i+1) = n\] 考虑这个度数序列取到最大值的位置,可以发现用这个点以及在这个点之后删除的点能够构造出一个热闹度为\(…
题目链接 思路 首先观察题目最后的式子\(\lfloor \frac{n}{p + 1} \rfloor \le q\) 并且\(\lfloor \frac{n}{q+1} \rfloor \le p\). 这个式子其实就是告诉我们\(p\)和\(q\)都要尽量大. 然后这道题就可以分成两个小题: 1.求一个子图,使得图中最小度数最大. 2.求最大独立集. 先看第一个问题: 可以贪心的每次将度数最小的点删去.剩下的点中度数最小的那个就是当前图的贡献.然后找一个最大的贡献就是答案. 第二个问题 求…
由于两者是独立的,我们希望两者的$p$和$q$都最大 考虑最大的$p$,先全部邀请,此时要增大$p$显然必须要删去当前度数最小的点,不断删除之后将每一次度数最小值对答案取max即可 对于$q$也即最大独立集,并没有很好的解法,但考虑不断加入一个节点$x$,并删去$x$以及与$x$相邻的节点,重复此过程直至原图为空即得到了一个独立集 每一次贪心选择度数最小的节点$x$,显然$x$的度数一定不超过$p$,换言之每一次至多删去$p+1$个节点,最终要删去所有节点,即有$\lceil\frac{n}{p…
题目传送门:https://www.luogu.org/problemnew/show/P3524 大意:给一个$N$个点的图,其中一定有一个大小为$\frac{2}{3}N$的团,程序需给出一个大小为$\frac{N}{3}$的团.$N \leq 3000,N \% 3 = 0$ 所以这道题还是比较水? 考虑将没有连边的两个点同时删去,那么最坏情况是每一次删除团内一个点被误删,那么最多有$\frac{N}{3}$个点被误删,剩下的最少$\frac{N}{3}$个点就是留下的团了 #includ…
比赛的时候没有注意到 给出的up矩阵 能使我们随便选一列 确定这一列的rank 这样我们得出每一行列的rank 进行构图 大->小 然后从大到小放 当前放的点 和他有因果关系并且比他大的点必须已经被放了 并且这个图没有环 做一个topsort就可以了 但是会MLE 因为边的数量可能 600^3 这个图虽然满足拓扑图 但是它比拓扑图更满足一个严格的等级序列 所以可以只建600^2的边 每个点指向只比它小的点 需要判断输入的合法性 int n ; int le[605][605] ; int up[…
这鬼家伙已经咕了好久了-- SDOIR2的题目挺好玩的- 快速查询(???) 不难发现所有的操作都可以通过区间打Tag实现 那么可以维护两个标记\(a,b\)表示序列中的数为\(x\)时实际表示的值是\(ax+b\).对于一个单点赋值操作把值\(x\)变为\((x-b)a^{-1}\)放进数组里面,对于全局赋值操作直接把数组清空.只清空在上一次清空到这一次清空之间被修改的数组上的位置,那么清空的复杂度一定不会大于前面所有操作的操作次数,复杂度就是对的. 至于怎么存这个数组可以离散化也可以像我一样…
1.「GXOI / GZOI 2019」「洛谷 P5304」旅行者   Link & Submission.   经典二进制分组,没啥好说的. 2. 「SDOI 2019」「洛谷 P5361」热闹的聚会与尴尬的聚会   Link & Submission.   随便拓扑一发可以求到最大的 \(p\),进而得到 \(q\) 的目标值.我一看,精确求 \(q\) 是 NP-Hard?!好的我们 std::shuffle 一发依次选--我焯它过了?   确定性算法:注意到 \((p+1)(q+1…
聚会的快乐 TimeLimit:1000MS  MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 你要组织一个由你公司的人参加的聚会.你希望聚会非常愉快,尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人. Input 第一行一个整数N(N<100).接下来有N行,每一行描述一个人的信息,信…
题目描述 你要组织一个由你公司的人参加的聚会.你希望聚会非常愉快,尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人. 输入输出格式 输入格式: 第一行一个整数N(N<100).接下来有N行,每一行描述一个人的信息,信息之间用空格隔开.姓名是长度不超过20的字符串,幽默系数是在0到100之间的整数. 输出格式: 所邀请的人最大的幽默系数和. 输入输出样例 输入样例#1: 5…
从外地学习回来,我对图论才有认识(以前就没接触过,非常尴尬),说实话,学好图论的重要性,就像学数学时在进行解析几何时,图极有可能是打开答案的最后秘钥,也就是数形结合,而懂的人永远明白,用图解决绝对比用解析简单(一般情况).而图论对于oi选手说,就是一大杀器,有可能利己,也可能抱憾终身.所以说图论的重要性就很显然了. 大家在进入图论的时候,应该先掌握链式前向星建图,当然也可以叫邻接表,先附上我喜欢的模板 struct node{ int next,to,w; }edge[maxn<<4]; in…
图论的常见题目有两类,一类是求两点间最短距离,另一类是拓扑排序,两种写起来都很烦. 求最短路径: 127. Word Ladder Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that: Only one letter can be…
自2012年开始,微软云计算与企业事业部和Citrix思杰,NetApp达成合作,共同开发出第一版针对Hyper-V虚拟设备驱动以及相关的用户态程序,并将此称之为集成服务 (Integration Service) .微软也紧密地和FreeBSD社区合作,所有集成服务的代码都是第一时间上传到FreeBSD内核.在过去这几年,微软开源技术中心的上海研发团队让FreeBSD在网络&存储性能以及功能上都有了重大提升. Hyper-V 是 Azure 的虚拟化平台.而微软投资于FreeBSD运行于Hyp…
腾讯优测是专业的移动自动化测试平台,提供多维度的自动化测试服务,让测试更简单! 近期有报道称,澳大利亚悉尼市新某大学的一名男生在课堂上看电影,不料耳机没有插好,变成了现场直播... 如果你认为耳机没插好事件尚且可以hold住,那么接下来的问题会不会让你更加尴尬?当你在手机插上耳机准备看电影时,声音却从扬声器里响了出来... 没想到藏得这么深,还是让耳机出卖了... 容我静静,为避免此类尴尬事件再次发生,我特意对耳机在手机上的插拔原理研究了一番.感兴趣的朋友我们可以一起讨论... 1.Androi…
为什么写这篇文章呢? 为什么要弄这么个题目呢? 首先解释为什么用这个题目.这一切都要从那天在QQ群中的讨论说起,那天在群中,一个哥们问了一个关于(void)0 的问题.然后大家说到了 (void)0和(void*)0: 大家看看(void)0 和(void*)0 ,是不是一个像个平胸的小妹,一个像个丰韵的美女. 他问的的问题如下: (void): //这个语句在C语句中可以执行吗? 我想了一下这个语句应该没有什么问题,在没有用(void)0,去影响内存对象的情况下,应该是可以的.下面是我在FC…
1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 2259  Solved: 1023[Submit][Status][Discuss] Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 6 6 6 Sample Output 5 2 2 5 4 1 6 0 HINT Source Day1…
题目传送门 题意:训练指南P191 分析:本题特殊,n个物品,n种元素则会爆炸,可以转移到图论里的n个点,连一条边表示u,v元素放在一起,如果不出现环,一定是n点,n-1条边,所以如果两个元素在同一个集合就会爆炸. #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; struct DSU { int rt[N], rk[N]; void init(void) { memset (rt, -1, sizeof…
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离.对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu ×Wv 的联合权值. 请问图G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 输入输出格式 输入格式: 输入文件名为link .in. 第一行包含1 个整数n . 接下来n - 1 行,…
移动设备页面高度不足时min-height 的尴尬处理 在做html5的页面时,经常遇到页面内容太少撑不起来整个手机屏幕的高度. 我们经常使用min-height来处理,比如min-height:568px; 对应的是iPhone5 的高度: 而这样iPhone6plus下方就会出现空白. 而如果设置 min-height:736px; iPhone5的话就会出现滚动条: 此时我们可以使用 position:absolute; left:0; right:0; top:0; bottom:0;…
题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5下面N行,每行给出x,y表示其家的坐标.-10^9<=x,y<=10^…
一次聚会离场 一次聚会离场,如果顺路要计划好A女生 和B女生 或者C女闺密一起回去,然后再自己回去 如果别人说:好男人, 自己一定要谦虚说: 哪里,好男人一般都是备胎. 到家了要说: 不是说: 我:我到家了,你们早点休息 正确方式为:我到家了,你们到家了没…
/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合.每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相遇的最短时间,并输出相遇的地点,如果有多个按编号大小顺序输出. 输入: 测试数据 t n m 以下m行每行 dis[i] 该集合点的数量 ...每个点的标号 数据范围: n 2-1e5 所有集合的元素的数量和 1e6 思路: 如果直接跑最短路,边会存爆的. 考虑换种思路建边. 每个集合看作两个点,一…
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点的同层邻接点,节点编号小的优先遍历) Input 输入第一行为整数n(0< n <100),表示数据的组数.对于每组数据,第一行是三个整数k,m,t(0<…
3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 531  Solved: 249[Submit][Status] Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5 下面N行,每…
最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac…
写过的题... #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define rep(i,n) for(int i=1;i<=n;i++) #define REP(i,s,t) for(int i=s;i<=t;i++) #define clr(x,c) memset(x,c,sizeof(x)) #de…