51NOD1835 完全图】的更多相关文章

传送门 分析 令f(i,j)表示i点完全图有j个联通块的方案数. 讨论有i-1个点已经固定了,我们拉出一个代表元素然后讨论它的集合大小然后组合数算一下就可以了. $$ dp(i,j) = \sum_{k=1}^{i-1} C_{i-1}^{k-1} dp(i-k,j-1) dp(k,1) $$ $$ dp(i,1) = 2^{\frac{i(i-1)}{2}} - \sum{j=2}^i dp(i,j) $$ 因为至少要删一条边,所以m=1时候最终答案要减1. 代码 #include<iostr…
/************************************************************************* > File Name: j.cpp > Author: HJZ > Mail: 2570230521@qq.com > Created Time: 2014年08月28日 星期四 12时26分13秒 *******************************************************************…
本文论述k(3, 3)与K5平面表示的存在性.首先给出图的平面表示的定义: 若可以在平面里画出一个图而让边没有任何交叉(边的交叉是指边的直线或弧线在它们的公共端点以外的地方相交),则这个图是平面性的.这样一种画法称为这个图的平面表示. 显然,证明一个图是非平面性比证明一个图是平面性的要困难.因为对于后者我们可以用构造性的存在性证明来说明一个图是平面性的. 首先考虑K(3, 3)是否是平面性的.为了解决这个问题,我们首先可能认为其存在平面表示,于是乎我们开始尝试各种可能,企图利用构造性的存在性证明…
一.这里只介绍简单的三个客户端异步通信(完全图拓扑结构) //建立管道 mkfifo open顺序: cl1 读 , cl2 cl3 向 cl1写 cl2 读 , cl1 cl3 向 cl2写 cl3 读 , cl1 cl2 向 cl3写 顺序的规律就是 第i个 客户端读 其他各个客户端 ,其他的各个客户端 向 i 写 ,i 从 1 到 3. cl1 代码: #include<stdio.h> #include<stdlib.h> #include<string.h>…
题意:如果1认识2,2认识3,必须要求有:1认识3.如果满足上述条件,输出YES,否则输出NO. 思路:显然如果是一个完全图就输出YES,否则就输出NO,如果是无向完全图则一定有我们可以用dfs来书边和点 n个节点的有向完全图边数为e=n*(n-1) 代码: #include <bits/stdc++.h> #define maxn 150000 #define ll long long using namespace std; vector <]; ]; int t; void dfs…
题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光明小学的每个班都有M个学生,所以你要为他们设计出一条恰好经过M条边的路径.光明小学的小朋友们希望全盘考虑所有的因素,所以你需要把任意两点间经过M条边的最短路径的距离输出出来以供参考. 你需要设计这样一个函数:res[][] Solve( N, M, map[][]);注意:map必然是N * N的二…
B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes input:standard input output:standard output Bear Limak examines a social network. Its main functionality is that two members can become friends (then th…
LOJ10067 构造完全图 最小生成树 每次找到最小的边,将边两端的块合并 (我之前想的是什么鬼) #include<cstdio> #include<algorithm> using namespace std; ]; ],siz[]; long long ans; inline bool cmp(const data &A,const data &B) {return A.d<B.d;} inline int find(int x) {return x=…
2796 最小完全图 http://codevs.cn/problem/2796/  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 若一个图的每一对不同顶点都恰有一条边相连,则称为完全图. 最小生成树MST在Smart的指引下找到了你,希望你能帮它变成一个最小完全图(边权之和最小的完全图). 注意:必须保证这个最小生成树MST对于最后求出的最小完全图是唯一的. 输入描述 Input Description 第一行一个整数n,表示生成树的节点数.…
Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 2415    Accepted Submission(s): 765 Problem Description Bessie and her friend Elsie decide to have a meeting. However, after Farmer Joh…
传送门 我居然忘写题解啦!(记忆废) 不管怎么说,这题还算是一道好题啊……你觉得敦爷出的题会有水题么 …… 这题比较容易把人误导到Boruvka算法之类的东西上去(我们机房去刚D题的人一开始大多也被误导了),但仔细思考之后是可以发现问题的特殊性质的. 听说很多人是从Kruskal算法想到这道题的做法的?好吧我并不是,那我就写写我的思考过程好了…… 记得算导上有一道思考题,判断一个最小生成树算法的正确性.那个算法是这样的:把当前图的点集随意划分成两半,递归两半后选出连接两个点集的边中权值最小的一条…
hdu_4635 题目大意:给出一张DAG(n个点,m条边),求出能加的最大边数,使得该图无重边,无自环,非强连通. 题解:这题题面很好理解,也没有什么很难的点,主要是如何求出最大边数需要动点脑筋.首先要明确一点强连通图不一定是完全图,完全图一定是强连通图.因为完全图定义是任意两点均有连边,而强连通仅为任意两点可互相到达.于是乎这题我们可以这样构思,最后我们要的是这样一张图,有若干条有向边,连接着两张完全子图,那么问题就来了,如何构造这两张完全子图?不妨设这两张完全子图为G1,G2,其顶点数分别…
题目传送门 题目大意:给出n个点,m条无向边,让你计算这幅母图中有几个大小为s的完全图. 完全图的意思是任意一个点都和其他点直接相连,完全图的大小指的就是完全图点的个数. 思路:比较巧妙的构图方式.我们会很自然地想到用dfs来找环,然后记录路径,判断是否成完全图,但是由于题目给的是双向边,如果直接构图的话,就会导致出现很多没有必要的情况,重复计算,爆栈超时. 所以在建图的时候只建从小的点到大的点的单向边,然后对n个点从小到大进行dfs,这样可以既可以保证不会有遗留的情况,也不会重复计算(因为每次…
题目链接 分析: 这是一张完全图,并且边的权值是由点的权值$xor$得到的,所以我们考虑贪心的思想,考虑$kruskal$的过程选取最小的边把两个连通块合并,所以我们可以模仿$kruskal$的过程,倒着做$kruskal$,设定当前的最高位为$d$,我们把点集分为两个集合,$s$集合代表$d$位为$1$的点,$t$集合代表$d$位为$0$的点,就是$st$两个连通块,考虑这两个连通块的连接,把$t$连通块建出一棵$trie$树,然后枚举$s$集合中的点,去查找最小边,然后统计最小边的数量,递归…
题目链接:http://codeforces.com/contest/791/problem/B 题意:给出一个无向图,问是否满足若存在边ab, bc则存在边ac: 思路:题意即,对于一个点,其所有子节点都是相互可达的,即为完全图,不过给出的不一定是连通图,所以我们需要判断所有连通分支是否全为为完全图: 因为题目说明了没有重边和自环的情况,那么我们可以统计每个点的度数,对于某个连通分支若其所有点的度数等于当前连通分支点数-1,那么其为完全图: 那么我们只需dfs一下连通分支并统计每个连通分支的点…
题目链接:HDU  4635 题目大意: 给你一个有向图,加有向边,使得这个图是简单有向图.问你最多加多少条有向边. 简单有向图: 1.不存在有向重边. 2.不存在图循环.(注意是不存在 “图” 循环,就是不能使整个图成为 “强连通图” .意思是可以存在环,但不能是全图循环.同样,两个点之间可以有两条相反有向边.) 分析: 1.如果我要加最多的边,全图仍然不为 “强连通图” .那么最多的情况就是,有两个巨大的环,他们之前有且仅有一条有向边.故先进行 “有向图缩点” ,先从 小环 开始分析. 2.…
题目 loj#10067 构造完全图 解析 和kruscal类似,我们要构造一个完全图,考虑往这颗最小生成树里加边 我们先把每一条边存下来, 把两个端点分别放在不同的集合内,记录每个集合的大小,然后做kruscal,集合之间两两构造完全图,即两两合并,直到合并成为一个集合. 因为本来就有一条边相连,又要满足这条边的边权是最小的,显然合并两个集合的代价是\((size[x]*size[y]-1)*(w[i]+1)\),然后\(f[x]=y\),最后再加上原来这棵树的总权值就好了 代码 #inclu…
题意:给出一张含有n(n<20)个点的完全图,求从0号节点到第n-1号节点的最短Hamilton路径.Hamilton路径是指不重不漏地经过每一个点的路径. 算法进阶上的一道状压例题,复杂度为O(n^2 * 2^n),还是蛮恐怖的. 设f[i][j]表示当前经过状态为i,且当前在点j所花费的最小代价.其中i是二进制压缩值,从0-n-1位分别表示这个点是否经过了.目标状态为f[2^n - 1][n - 1],那么我们从小到大枚举i,再循环枚举当前点j和上一个状态所在的点k即可. 转移方程:f[i,…
Easy version:Codeforces 题面传送门 & 洛谷题面传送门 Hard version:Codeforces 题面传送门 & 洛谷题面传送门 发现自己交互题烂得跟 sh*t 一样--于是不管三七二十一先来两道再说( 首先考虑最 trivial 的情况,也就是 \(k=1\) 和 \(k=n\) 两种情况,对于 \(k=1\) 你就 \(\mathcal O(n^2)\) 地检查一遍所有的 pair,具体来说我们枚举所有 \(i,j(i<j)\),然后依次询问 \(i…
表示第一篇就是水题. 根据Prim的思想,我们可以证明:dis ( a , b ) > max { a b 最小生成树路径上的边权 } 把所有边sort一遍用并查集维护就可以了 #include<cstdio>#include<algorithm>using namespace std ; long long ANS = 0 ; struct edge {    int a , b ;    int dis ;} ; const int MAXN = 100000 ;edge…
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1601.html 题目传送门 - 51Nod1601 题意 题解 首先我们考虑如何求答案. 我们将所有数字按照二进制位从高到低建到 Trie 上,按照 kruscal 思想,我们要保证先选较小的边. 于是我们很容易得出结论:在 Trie 上,设 $f(x) =$ 合并子树 $x$ 的所有叶子节点的代价,设 $L(x),R(x)$ 分别为 $x$ 的左右子树编号,则 $f(x)=f(L(x))+f(R…
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1835 基准时间限制:1 秒 空间限制:131072 KB   初始有n个点,任意两个点之间有一条无向边,现在要移除一些无向边(至少一条),问移除后有恰好m个连通块的方案数是多少. 两个方案不同当且仅当存在至少一条无向边在某个方案中被移除,但是在另一个方案中没被移除. 答案可能很大请模一个998,244,353.   Input 第一行读入n,m. 1<=m<…
In graph theory, the complement of a graph G is a graph H on the same vertices such that two distinct vertices of H are adjacent if and only if they are not adjacent in G. Now you are given an undirected graph G of N nodes and M bidirectional edges o…
题意 给定\(n\)个带权点,第\(i\)个点的权值为\(w_i\),任意两点间都有边,边权为两端点权的异或值,求最小生成树边权和,以及方案数\(\bmod 10^9 + 7\) \(n \leq 10^5,W = max(w_i) \leq 2^{30}\) 题解 考虑按位贪心,我们从高到低考虑二进制第k位.每次把当前点集\(S\)分成第\(k\)位为\(0\)和第\(k\)位为\(1\)的两个集合,记为\(S_0, S_1\). 我们递归下去把这两个集合连成生成树,然后再找一条最小的跨集合的…
原文地址:http://www.cnblogs.com/verrion/p/redis_structure_type_selection.html  Redis分布式集群几点说道 Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,大部分都是采用分片技术,保证单实例内存增大带来的一系列问题,下面所列出的codis方案目前正在不断测试过程中,测试过程没有展示出来,主要从…
这是<从产品角度学EXCEL>系列第二篇. 前言请看:从产品角度学EXCEL-系列0-为什么要关注EXCEL的本质 本文不接受无授权转载,如需转载,请先联系我,非常感谢. 1.EXCEL是怎么工作的 在序言里,我们大致讲了一下为什么要写这篇文章,以及其整体架构.而从这章开始,我们将简单看一下EXCEL是什么,以及它是怎么工作的. 从EXCEL的定义来说,它是一款用于处理数据的电子表格软件.当我们打开EXCEL时,看到的一大片方格子,就是excel所处理的主要对象——表格(spreadsheet…
题目 Source http://www.tsinsen.com/A1493 Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通. 为了省钱, 每两个城市之间最多只能有一条直接的贸易路径. 对于两个建立路线的方案, 如果存在一个城市对, 在两个方案中是否建立路线不一样, 那么这两个方案就是不同的, 否则就是相同的. 现在你需要求出一共有多…
染色问题 基准时间限制:1 秒 空间限制:10240 KB 分值: 40 一个n(3<=n<=100)个点的完全图,现在给出n,要求将每条边都染上一种颜色k(1<=k<=n),最终使得所有三个点构成的环(C(n,3)个不同的换)上三条边的颜色和在所有颜色中任选三种颜色的组合(C(n,3)种方案)一一对应,由你来给出染色方案. 本题有多组数据   Input 第一行一个整数T,表示数据组数 接下来T行每行一个整数n,表示完全图的点数 Output 输出由T个部分组成 每个部分的第一行…
学了那么一个星期的流体力学,又看了一周的计算流体力学,小白对于如何应用CFD解决工程流体问题,依然是一无所知.眼看一个月的时间已经过半,小白有点着急起来.于是在一个阳光明媚的早晨,小白又找到了黄师姐. “师姐,半个月过去了,还是对CFD如何解决工程问题没有一点思路,怎么办呀?“小白略显着急的问. ”这半个月让你学习流体力学和计算流体力学,虽然时间太少,但却是条正道.要想 用好CFD,这两方面的基础是越深厚越好,但是咱们没那么多的时间留给你慢慢学了,这样吧,今天我教你一种CFD快速入门方法.“黄师…
A.模拟 B.模拟 C(hdu5950):(矩阵快速幂) 题意:求f(n)=2f(n-2)+f(n-1)+n^4 分析:矩阵快速幂,(f(n),f(n-1),n^4,n^3,n^2,n,1) 注意:矩阵快速幂乘的时候初始矩阵是f[i][i]=1,而做加法的时候f[][]=0 E(hu5952):(dfs+剪枝) 题意:n<=100个点,m<=1000条边的图,求大小恰好是s<=10的完全图的个数,保证每个点的度数<=20 分析:这一看就是dfs,注意(1,2,3)和(3,2,1)等…