摘要:入门教程:http://rogerdudler.github.io/git-guide/index.zh.html快速使用指南:http://www.36ria.com/4742
阅读全文
摘要:原文地址:http://www.cnblogs.com/ch3656468/archive/2011/03/02/1969303.html基本的叉积、点积和凸包等东西就不多说什么了,网上一搜一大堆,切一些题目基本熟悉了就差不多了。 一些基本的题目可以自己搜索,比如这个blog:http://blog.sina.com.cn/s/blog_49c5866c0100f3om.html 接下来,研究了半平面交,思想方法看07年朱泽园的国家队论文,模板代码参考自我校大牛韬哥:http://www.owent.net/2010/10/acm-%E8%AE%A1%E7%AE%97%E5%87%A0%E..
阅读全文
摘要:最近一段时间决定先好好搞一下数据结构了,首先搞了下树链剖分;专题训练:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#overview树链剖分并不是一个复杂的算法或者数据结构,只是能把一棵树拆成链来处理而已,换一种说法,树链剖分只是xxx数据结构/算法在树上的推广,或者说,树链剖分只是把树hash到了几段连续的区间上。学习链接:入门:http://blog.sina.com.cn/s/blog_7a1746820100wp67.html (看了这个讲解,再把题目A掉就有点理解了)https://quartergeek.co
阅读全文
摘要:转载地址:http://blog.csdn.net/onepiecehuiyu/article/details/8934366http://mawenhao19930620.blog.163.com/blog/static/12857536120112991818242/Windows下gvim配置文件_vimrc首先配置g++到环境变量(配置g++,具体是将devc++的g++.exe的路径比如说:c:/deVC++/bin..加入到环境变量path里面) , 然后将下面的代码复制并保存为_vimrc , 替换掉vim安装文件夹中的_vimrc文件(或者是打开Vim的启动设定,然后复制下面的
阅读全文
摘要:最短路问题此类问题类型不多,变形较少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://acm.pku.edu.cn/JudgeOnline/problem?id=3013题意:最简单最短
阅读全文
摘要:来自风神博客:http://blog.csdn.net/shahdza/article/details/6317011①//适用于正整数template inline void scan_d(T &ret) { char c; ret=0; while((c=getchar())'9'); while(c>='0'&&cinline bool scan_d(T &ret) { char c; int sgn; if(c=getchar(),c==EOF) return 0; //EOF while(c!='-'
阅读全文
摘要:原文地址:https://www.byvoid.com/blog/biconnect图的割点、桥与双连通分支[点连通度与边连通度]在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。一个图的边连通度的定义为,最小割边集合中的边数。[双连通图、割点与桥]如果一个无向连通图的点连通度大于1,则称该图是点双连通的(point biconnected),简称双连通或重连通。一个
阅读全文
摘要:原文地址:https://www.byvoid.com/blog/scc-tarjan/[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。直接根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法是Kosara
阅读全文
摘要:原文地址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html花了很长时间整理的,感觉用起来很方便,共享一下。我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以直接消除代码中的空行5.“F3”可列出当前目录文件,打开树状文件目录6. 支持鼠
阅读全文
摘要:有了KMP和Trie的基础,就可以学习神奇的AC自动机了。AC自动机其实就是在Trie树上实现KMP,可以完成多模式串的匹配。 AC自动机 其实 就是创建了一个状态的转移图,思想很重要。 推荐的学习链接:http://acm.uestc.edu.cn/bbs/read.php?tid=4294http://blog.csdn.net/niushuai666/article/details/7002823http://hi.baidu.com/nialv7/item/ce1ce015d44a6ba7feded52d AC自动机专题训练链接:http://acm.h...
阅读全文
摘要:决定先把ZOJ上的狗狗40题刷掉了呢~~~~~IDZOJ IDTitleRatio (AC/All)10011021The Willy Memorial Program23.69% (82/346)10021030Farmland50.33% (151/300)10031041Transmitters49.30% (995/2018)10041043Split Windows52.48% (74/141)10051060Sorting It All Out29.89% (993/3322)10061063Space Station Shielding31.79% (235/739)100710
阅读全文
摘要:【2-SAT问题】现有一个由N个布尔值组成的序列A,给出一些限制关系,比如A[x]AND A[y]=0、A[x]OR A[y]OR A[z]=1等,要确定A[0..N-1]的值,使得其满足所有限制关系。这个称为SAT问题,特别的,若每种限制关系中最多只对两个元素进行限制,则称为2-SAT问题。由于在2-SAT问题中,最多只对两个元素进行限制,所以可能的限制关系共有11种:A[x]NOT A[x]A[x] AND A[y]A[x] AND NOT A[y]A[x] OR A[y]A[x] OR NOT A[y]NOT (A[x] AND A[y])NOT (A[x] OR A[y])A[x] X
阅读全文
摘要:概率DP主要用于求解期望、概率等题目。转移方程有时候比较灵活。一般求概率是正推,求期望是逆推。通过题目可以体会到这点。首先先推荐几篇参考的论文:《信息学竞赛中概率问题求解初探》《浅析竞赛中一类数学期望问题的解决方法》 《有关概率和期望问题的研究 》1、POJ 3744 Scout YYF I此题是一个用矩阵优化的求概率的题目。主要思想是分段,根据转移方程用矩阵求解。题解见 herePOJ 3744/*POJ 3744C++ 0ms 184K*/#include<stdio.h>#include<string.h>#include<algorithm>#inc
阅读全文
摘要:这几天学习了一下插头DP,刷了11道题。对插头DP有了点理解。插头DP就先告一段落吧! 后面还有插头DP的广义路径和其它复杂应用,以后有机会再补上吧! kuangbin首先入门推荐的还是cdq的论文:《基于连通性状态压缩的动态规划问题》http://wenku.baidu.com/view/4fe4ac659b6648d7c1c74633.html上面的论文关于插头和轮廓线等概念讲得很清楚。而且关于插头DP的精髓也讲得很透了。插头DP其实就是每格进行状态转移。看懂原理和写代码还是有段距离的,可以结合代码去加深理解原理。同时形成适合自己风格的代码模板。HDU 1693 Eat the Trees
阅读全文
摘要:从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起到现在几乎都在做这类的题目。做到现在感觉这类题目的一些基本知识点都差不多有所了解了,水题也刷了不少,但还有很多难题自己实在是做不动,所以准备把这类题目先放一放,然后把前段时间做的水题整理一下(供以后的初学者参考,大牛就不要看了哈,都是水题)。剩下的比较难的题目就慢慢来吧,以后做出来再不上,这个小结会不断地更新。也希望大家有好的题目可以推荐一下,分享一下哈。感谢:周sir,J_factory和福州大学神牛aekdycoin,大连理工大学神牛czyuan。不扯了
阅读全文
摘要:二分图匹配(匈牙利算法)1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。2。最小路径覆盖=最小路径覆盖=|G|-最大匹配数在一个N*N的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果
阅读全文
摘要:二分图如果是没有权值的,求最大匹配。则是用匈牙利算法求最大匹配。如果带了权值,求最大或者最小权匹配,则必须用KM算法。 其实最大和最小权匹配都是一样的问题。只要会求最大匹配,如果要求最小权匹配,则将权值取相反数,再把结果取相反数,那么最小权匹配就求出来了。 KM算法及其难理解。。。看了几天还无头绪。 先拿上一直采用的KM算法模板,按照吉林大学的模板写的。试试了好多次感觉都没有出错。/******************************************************二分图最佳匹配 (kuhn munkras 算法 O(m*m*n)).邻接矩阵形式 。 返回最佳匹配值..
阅读全文
摘要:传说中的随机算法。效率极高。可以对一个2^63的素数进行判断。可以分解比较大的数的因子。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<iostream>#include<algorithm>using namespace std;//****************************************************************// Miller_Rabin 算法进行素数测试//速度
阅读全文
摘要://大数乘小数void mult(char c[],int m,char t[]){ char s[100]; int len=strlen(c); for(int i=0;i<len;i++) s[len-i-1]=c[i]-'0'; int flag,add=0; for(int i=0;i<len;i++) { int k=s[i]*m+add; if(k>=10) { s[i]=k%10; add=k/10; flag=1; ...
阅读全文
摘要:加、减、乘、除高精度 string kuangbin#include<stdio.h>#include<string>#include<string.h>#include<iostream>using namespace std;//compare比较函数:相等返回0,大于返回1,小于返回-1int compare(string str1,string str2){ if(str1.length()>str2.length()) return 1; else if(str1.length()<str2.length()) return
阅读全文