122. The book time limit per test: 0.25 sec. memory limit per test: 4096 KB There is a group of N (2<=N<=1000) people which are numbered 1 through N, and everyone of them has not less than [ (N+1) / 2 ] friends. A man with number 1 has the book, whi…
http://acm.sgu.ru/problem.php?contest=0&problem=156 这道题有两种点 1. 度数>2 在团中的点,一定连接一个度数为2的点 2. 度数等于2,连接两个团或者附着在一个团上的点 明显度数为2的点的两条边都是要走的,度数>2的点与度数2的点一一对应,所用的边也可以一一对应,所以这道哈密尔顿回路可以转化成欧拉回路 方法:第一种:建立新图,简单清晰 第二种:采用欧拉路的思想后续遍历,关键在怎样选取起点终点使得点迹可以形成回路 度数为2的点两条边…
直接上代码....... ================================================================================================================ #include<stdio.h> ; int main() { , }, sum[MAXN]={, }; ; i<MAXN; i++) { Fib[i] = Fib[i-] + Fib[i-]; sum[i] = Fib[i] + sum…
题目描述 有一群人从1到N标号,而且这群人中每个人的朋友个数不少于 (N+1)/2 个. 编号为1的人有一本其他人都想阅读的书. 写一个程序,找到一种传阅顺序使得书本只经过每个人手中一次,并且一个人只能将书本传给他的朋友,并且书本最后必须传回给第一个人.(注释:如果A是B的朋友,那么B一定是A的朋友) 输入 第一行包含一个数字N. 接下来的有N行,第i行表示第i-1个人的朋友 输出 如果不存在解决方案,则输出 'No solution' .否则你将输出1行包含N+1个整数,表示传阅路径,由1开始…
SGU 122 题意:给你n个人,每个人有大于 N / 2(向上取整)的朋友,问你1这个人有一个书,每个人都想看,只能从朋友之间传递,然后最后回到了1这个人,问你 是否有解,然后有解输出路径 收获:哈密尔顿路 一:Dirac定理(充分条件) 设一个无向图中有N个顶点,若所有顶点的度数大于等于N/2,则哈密顿回路一定存在.(N/2指的是⌈N/2⌉,向上取整) 二:基本的必要条件 设图G=<V, E>是哈密顿图,则对于v的任意一个非空子集S,若以|S|表示S中元素的数目,G-S表示G中删除了S中的…
<script> //图的构建 function vnode() { this.visited=0; this.vertex=0; this.arcs=new Array(); } function G() { this.adjlist=new Array(); } function creategraph() { var a=[[2,3,6],[1,5,4],[4,6,1],[2,3,5],[4,2,6],[3,5,1]]; var g=new G(); for (i=0;i<6;i+…
时间复杂度 时间复杂度描述了当输入规模变大时,程序运行时间的变化程度,通常使用\(O\)来表示.比如单层循环的时间复杂度为\(O(n)\),也就是说程序运行的时间随着输入规模的增大线性增长,两层循环的时间复杂度为O\((n^2)\),快速排序的时间复杂度为\(O(nlogn)\),使用穷举法解决旅行商问题的时间复杂度为\(O(n!)\).时间复杂度根据变化速率的快慢可以分为两类:1.多项式级的时间复杂度,如\(O(1)\),\(O(n),O(n^a),O(logn)\)等:2.非多项式级时间复杂…
谈到哈希算法,每个程序员都不陌生,但是谈到比特币共识算法PoW,如果没有接触过的技术人员可能觉得应该会很复杂,毕竟全球的比特币节点数量如此庞大,达成共识的算法应该不会很简单.但其实如果你已掌握哈希算法,几分钟内你就能理解PoW.为了更好的说明PoW的原理,我们再把哈希算法及相关概念描述一下: 哈希函数相关概念 哈希函数--是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值. 碰撞定义--是指两个不同的消息在同一哈希函数作用下,具有相同的哈希值.…
初赛 时间复杂度 主定理(必考) \[ T(n) = aT(\frac{n}{b})+f(n) \] 其中,\(n\)为问题的规模,\(a\)为递推下子问题的数量,\(\frac{n}{b}\)为每个子问题的规模,\(f(n)\)为递推后做的额外的计算工作 在以下几种情况中, 主定理有用: \[\begin{cases} 若\exists \epsilon,使得f(n)=O(n^{\log_b^a-\epsilon}), &则T(n)=O(n^{\log_b^a}) \\ 若f(n)=O(n^{…
时间限制: 0.5 sec 空间限制: 4096 KB 描述 多米诺骨牌,一种用小的方的木块或其他材料,每个都被一些点在面上标记,这些木块通常被称为骨牌.每个骨牌的面都被一条线分成两个   方形,两边各有一定点数.   N个多米诺骨牌,每个骨牌左右两侧分别有一个0~6的整数(骨牌可以旋转以调换其左右两数), 求一种把这些骨牌从左到右排列的方案,使得所有相邻的两数字相等(即左边骨牌右侧的数字等于右边骨牌左侧的数字). 输入 第一行是一个整数N(1 ≤ N ≤ 100),表示骨牌的数量.接下来的N行…