ACM回忆
文章平均质量分 76
MetalSeed
_MetalSeed
展开
-
天马行空的ACM现场赛回顾
杭州赛后回顾10月25号窝萌经过一周的集训,大概捉了几场网络赛后,就匆忙的踏上了区域赛的行程。25号14:38乘高铁从南京南出发,快开到杭州的时候,窝萌满心欢喜的盯着陈老板睡熟的脸,经深思,决定让他带着他的计划睡过站,窝拿回窝说走就走的游荡。小心翼翼紧抓行李,微坐,呼吸,酝酿着一场悄无声息的消失。幸福来得太突然,当时真紧张了下下。窝想不管怎样,幸福总归是来了。但是,这坑原创 2013-11-13 16:36:47 · 3610 阅读 · 9 评论 -
HDU2065
Problem Description医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。现在有一长度为N的字符串,满足一下条件:(1) 字符串仅由A,B,C,D四个字母组成;(2) A出现偶数次(也可以不出现);(3) C出现偶数次(也可以不出现);原创 2013-02-13 00:09:22 · 1714 阅读 · 0 评论 -
POJ 3667 Hotel 带区间合并操作的线段树
典型的带区间合并线段树,只要多加一个合并操作即可DescriptionThe cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and enjoy a vacation on the sunny shores of Lake Superior. Bessie, ever the原创 2012-10-06 12:50:27 · 3163 阅读 · 1 评论 -
2012-2013暑假总结
暑假总结 这个暑假大部分时间都花在了ACM上,仔细一想,吾果然感性至极。 ACM这个名词我是从2月听说,到3月被志陈启蒙。提到志陈,就不得不说,乃的选修课果然很基础。 GreenHand命运坎坷,一不小心被志陈的小trick套住了,深深醉在了DFS,BFS里,各种嵌套各种恼,根本不能自拔,吾果然抵抗力差。 以为三月底能逃出算法的牢笼:ZLH测原创 2012-09-14 01:48:15 · 1599 阅读 · 0 评论 -
poj2184 Cow Exthibition花费为负的01背包
Problem Description"Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - Cows with Guns by Dana Lyons The cows want to prove to the public that they are both smart原创 2012-09-08 09:54:25 · 986 阅读 · 0 评论 -
RMQ 区间最值查询算法
RMQ(Range Minimum/Maximum Query),对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j主要方法:朴素(即搜索),复杂度为O(n)线段树能在对数时间内在数组区间上进行更新与查询。预处理 O(n), 查询 O(logn)定义线段树在区间[i, j] 上如下: 第一个节点维护着区间 [i, j] 的信息。 if i可知原创 2012-09-07 01:31:22 · 2412 阅读 · 0 评论 -
Simple Template
1:单调队列//单调递增队列1 子区间动态更新 const int maxn=100;int que[maxm*10+5], idx[maxm*10+5], head = 1, tail = 0;void queini(){ head = 1, tail = 0, que[0] = 0;// 单调减 que[0] = 99999999; } int quein(int in原创 2013-10-20 14:16:45 · 2176 阅读 · 0 评论 -
字典树--字符串快速检索法
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字原创 2012-09-07 01:32:18 · 4201 阅读 · 3 评论 -
整数及字符串哈希
Hash此处哈希指直接映射,以空间换时间,提供几乎O( 1 )的查询速度。PS: hash数组用前,请memset(hash,-1,sizeof(hash));1:整数哈希,数字可重复const int maxn = 0xff;int hash[maxn], count[maxn]; int hashit(int k){ int t = k % maxn;原创 2012-09-06 19:40:06 · 1400 阅读 · 0 评论 -
主席树介绍
函数式(现在又称主席式。。。)数据结构从来都没写过,感觉这个东西可以挖掘出不少东西出来,于是开一组专题。先根据 Seter 留下的文本做一些记录。。主席树大概是一种离线结构,我以前反正没看到过这东西,所以就自己给他起名字了!如果谁知道这东西的真名,请告诉我!现在我们知道,主席树的全名应该是 函数式版本的线段树。加上附带的一堆 technology。。。。转载 2012-10-07 13:05:43 · 48411 阅读 · 17 评论 -
hdu 2502月之数
Problem Description当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数。如果一个正整数m表示成二进制,它的位数为n(不包含前导0),寒月称它为一个n二进制数。所有的n二进制数中,1的总个数被称为n对应的月之数。例如,3二进制数总共有4个,分别是4(100)、5(101)、6(110)、7(111),他们中原创 2012-10-02 16:56:12 · 3173 阅读 · 2 评论 -
简单博弈论
寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态)(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) != 0, 则先取者肯定获胜(二)威佐夫博奕(Wythoff Ga原创 2012-09-07 19:20:09 · 3303 阅读 · 0 评论 -
母函数讲解
普通型母函数 定义:对于任意数列a0,a1,a2…an 即用如下方法与一个函数联系起来:~G(x) = a0 + a1x + a2x*2 + a3x^3 +….+ anx^n则称G(x)是数列的生成函数(generating function)例子:比较典型的是:A(x) = (1+x)^n~C(n,0),C(n,1),C(n,2),C(n,3)转载 2012-10-08 00:45:52 · 10292 阅读 · 1 评论 -
数据结构专题——线段树
线段树转载请注明出处,谢谢!http://blog.csdn.net/metalseed/article/details/8039326 持续更新中···一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lg原创 2012-10-04 14:18:22 · 121640 阅读 · 48 评论 -
hdu1874 dijkstra模板题
dijkstra 求两点最短路的权值和No1:#include#include#define find_min(a,b) a<b?a:busing namespace std;const int MAX = 0xfffffff;const int N = 210;int n,m,map[N][N],dist[N],vis[N];void getmap(){ int i,j原创 2012-09-02 21:00:34 · 712 阅读 · 0 评论 -
hdu4269 Defend Jan Ge changchun online 恶心模拟
各种恶心。。 直接贴代码了。。。比较混乱。。 直接用STL或者字符串hash等 会更简洁 更容易....Problem DescriptionDefend Jian Ge, an interesting RPG map in WAR3, has a very complete equipment system as a mini RPG game.In the ga原创 2012-09-09 00:19:51 · 1658 阅读 · 2 评论 -
hdu1247
字典树 VS STL本是字典树问题,但用容器巧妙解决了... 所以说容器真是个好东西。。。Problem DescriptionA hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.You are原创 2012-09-07 01:28:04 · 774 阅读 · 0 评论 -
素数筛选 及 最小公倍数
辗转相除法求最大公约数 及 素数筛选GCD与LCM求a,b的最大公约数--gcd求a,b的最小公倍数--lcminline unsigned int gcd(unsigned int a, unsigned int b){ while( b ^= a ^= b ^= a %= b ); return a; } inline unsigned in原创 2012-09-05 16:30:08 · 1036 阅读 · 0 评论 -
全源最短路模版
/*多源最短路径 floyd_warshall 复杂度O(n^3) 传入图的大小和邻接阵返回各点间最短距离min[][]和路径pre[][]pre[i][j]记录i到j最短路径上j的父结点可更改路权类型,路权必须非负!*/#define MAXN 200#define inf 1000000000typedef int elem_t;void floyd_warshall(i原创 2013-01-24 19:28:14 · 1128 阅读 · 0 评论 -
最小生成树(MST)模板
1:Primconst int INF = 2000000000; #define MAXN 1001typedef int elem_t; /* 1开始编号,n为点数,-INF为不能为生成树*/elem_t prim(elem_t graph[MAXN][MAXN], int n) { bool visit[MA原创 2013-01-24 19:19:01 · 1465 阅读 · 0 评论 -
hdu4374 One hundred layer
单调队列优化dp单调队列可以有两个操作:1、插入一个新的元素,该元素从队尾开始向队首进行搜索,找到合适的位置插入之,如果该位置原本有元素,则替换它。2、在过程中从队首删除不符合当前要求的元素。 单调队列实现起来可简单,可复杂。简单的一个数组,一个head,一个tail指针就搞定。复杂的用双向链表实现。 用处:1、保存最优解,次优解原创 2012-09-01 12:42:41 · 1316 阅读 · 0 评论 -
Three Swaps DFS
E. Three Swapstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputXenia the horse breeder has n (n > 1) horses原创 2013-08-31 15:25:25 · 1491 阅读 · 0 评论 -
ACM/ICPC2012aisa Changchun Site赛后反思
摘自MS的赛后回忆: 9:00比赛正式开始,登陆后我按照昨晚的计划行事,上手就敲线段树模板,沈竹筠跟俞志强读题,在我敲到query时,他们开始讨论A题题意,当时我愣了下,不知道是要继续敲还是跟着听题意,下意识让脑袋跟着手指走了,赛后发现继续打树是正确的,因为A不是我们的菜。 9:07打完线段树后,立刻把题册翻了翻,没扫到标准的updata + query题,遂决定读A追原创 2012-10-23 21:22:52 · 1815 阅读 · 0 评论 -
POJ 2528 Mayor's posters 线段树+离散化
DescriptionThe citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral posters at all places at their whim. The city counci原创 2012-10-05 14:48:18 · 4620 阅读 · 1 评论 -
Android蓝牙串口通信模板及demo,trick
转载请注明出处,谢谢http://blog.csdn.net/metalseed/article/details/7988945 by---MetalSeedAndroid蓝牙操作:与蓝牙串口模块通信,或其他蓝牙设备通信。初涉android的蓝牙操作,按照固定MAC地址连接获取Device时,程序始终是异常终止,查了好多天代码都没查出原因。今天改了一下API版本,原创 2012-09-17 19:33:43 · 20552 阅读 · 12 评论 -
数据结构---各种树模板 持续更新···
1:Trie 字典树3:BIT 树状数组4:Segment Tree 线段树5:SBT 二叉平衡检索树http://acm.hdu.edu.cn/showproblem.php?pid=4006#include #include #define MAX 1000010int n,m;struct SBT {原创 2013-09-20 13:59:44 · 3478 阅读 · 1 评论 -
矩阵算法模板
#include #include using namespace std;const int MAX = 32;int n, MOD;struct Matrix{ int v[MAX][MAX];}Matrix mtAdd(Matrix A, Matrix B){ Matrix C; for(int i = 0; i < n; ++i) for(int j = 0;原创 2013-08-25 13:06:23 · 1434 阅读 · 0 评论 -
Book of Evil 树双向DFS
Book of EvilPaladin Manao caught the trail of the ancient Book of Evil in a swampy area. This area contains n settlements numbered from 1 to n. Moving through the swamp is very difficult, so原创 2013-08-31 15:33:40 · 1818 阅读 · 0 评论 -
高斯消元法(解齐次方程组)
#define eps 1e-10#define maxn 110double equ[maxn][maxn], ans[maxn]; int n;bool Gauss(){ for( int i = 0; i < n; i ++ ){ int pos = i; double res = fabs(equ[i][i]); for(原创 2013-02-04 23:32:36 · 3678 阅读 · 0 评论 -
单点更新线段树 RMQ
D. Xenia and Bit Operationstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputXenia the beginner programmer h原创 2013-08-27 17:13:01 · 1573 阅读 · 0 评论 -
双向DFS模板题
B. Book of Eviltime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPaladin Manao caught the trail of the ancie原创 2013-08-30 22:23:19 · 2269 阅读 · 0 评论 -
动态规划-各种整数划分
1) 将n划分成若干正整数之和的划分数。2) 将n划分成k个正整数之和的划分数。3) 将n划分成最大数不超过k的划分数。4) 将n划分成若干奇正整数之和的划分数。5) 将n划分成若干不同整数之和的划分数。#include#includeconst int NS=55;int n,m;int dp[5][NS][NS];void init(){转载 2013-09-01 22:55:12 · 2749 阅读 · 0 评论 -
二分匹配
1.Hungary(邻接阵形式)#include #include #define MAXN 501 //左边的点#define MAXM 501 //右边的点int map[MAXN][MAXM];int p[MAXN];//保存匹配的结果, 初始化为-1bool v[MAXN];int n, m;//左边n个点,右边m个点bool dfs(int x)//模版代码 实原创 2013-02-10 01:03:41 · 1197 阅读 · 2 评论 -
单源最短路模板
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。一:SPFA#define INF 1000000000#define MAXN 50010 //点个数#define MAXM 6000000 //边条数int dis[MAXN];//结果struct Node{ int v, next; int c;}E[M原创 2013-02-02 08:27:40 · 1495 阅读 · 0 评论 -
网络最大流(SAP)
#include #include using namespace std;#define maxn 40010#define maxm 99999#define Type intstruct Graph { int gap[maxn], pre[maxn], cur[maxn], dis[maxn]; int NE, NV; int head[maxn]; int from[原创 2013-02-02 08:55:05 · 981 阅读 · 0 评论 -
hdu 4711 Weather概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=4711真的是坑吐血了,wa了5次 最后实在无语 把long long double 改成long double 就过了 #include #include #include #include #include #include #include #include #include原创 2013-09-20 18:03:24 · 1635 阅读 · 0 评论 -
hdu 4712 Hamming distance
不知道正解是神马,,不过网上都是这种随机破法,,也只好随大流了。。#include #include #include #include #include using namespace std; int cmp[16][16]; char data[1000005][6]; int fun(int q,int w) {原创 2013-09-19 12:07:59 · 1373 阅读 · 2 评论 -
树状数组全方位
1、概述树状数组(binary indexed tree),是一种设计新颖的数组结构,它能够高效地获取数组中连续n个数的和。概括说,树状数组通常用于解决以下问题:数组{a}中的元素可能不断地被修改,怎样才能快速地获取连续几个数的和?2、树状数组基本操作传统数组(共n个元素)的元素修改和连续元素求和的复杂度分别为O(1)和O(n)。树状数组通过将线性结构转换成伪树状结构(线性原创 2012-09-16 11:37:48 · 1755 阅读 · 0 评论 -
图的根节点-数据结构作业。。
手写邻接表 BFS#include #include using namespace std;const int maxn = 100000;const int maxm = 300000;struct Graph { int NE , NV; int head[maxn]; struct Node{ int next , v; Node(){} Node原创 2013-06-07 12:20:06 · 3465 阅读 · 0 评论 -
AC自动机
建立AC自动机的一般步骤是:1、初始化根节点,根节点是所有字符串的前缀 2、利用模式串建立字典树(一般将主串叫匹配串,子串或去匹配的串叫模式串) 3、对字典树上的构建fail指针,fail指针指向当前串的最长后缀,这个后缀也是某个串的前缀,和KMP的next指针相似 4、利用构建好的ac自动机或者trie图(ac自动机的所有后继节点拓展之后就是trie图)进行操作,一般有查询、利用trie图建立矩原创 2012-10-10 11:44:05 · 1225 阅读 · 0 评论