acm学习

要学习的

  基本结构 高级结构 题单
集合结构  
幷查集


POJ 1182

POJ 1308

POJ 1611

POJ 1986

POJ 1988

线性结构 数组

队列

双端队列


POJ

POJ

POJ

POJ

POJ

树状结构
二叉树

BST


AVL树

splay树(伸展树)

Treap

Cartesian Tree

Size Balance Tree


POJ 3580(splay tree)

POJ 2761(Treap)

POJ 2201(Cartesian Tree)

POJ 3481(SBT)

图形结构
邻接矩

阵邻接表

十字链表

邻接多重表

 
POJ

POJ

POJ

POJ

POJ

堆型结构 二叉堆
左偏堆

斜堆


POJ 3016(可合并堆)

POJ 3666(可合并堆)

POJ

POJ

POJ

数学结构  
散列表(Hash表)


POJ 3349

POJ 2002

POJ

统计结构  
树状数组

线段树


POJ 2482(线段树)

POJ 1151(线段树)

POJ 2155(二维树状数组)

POJ

POJ

字符结构  
前缀树

后缀树

后缀数组


POJ 1743

POJ 2744

POJ 2758

POJ 1056(Trie树)

POJ 2001(Trie树)

POJ 2503(Trie树)

POJ 3630(Trie树)

第一阶段:

练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,

因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打

出来.

1.最短路(Floyd、Dijstra,BellmanFord)

2.最小生成树(先写个prim,kruscal要用并查集,不好写)

3.大数(高精度)加减乘除

4.二分查找.

(代码可在五行以内)

5.叉乘、判线段相交、然后写个凸包.

6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)

7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.

8.

调用系统的qsort, 技巧很多,慢慢掌握.

9. 任意进制间的转换

第二阶段:

练习复杂一点,但也较常用的算法。

如:

1. 二分图匹配(匈牙利),最小路径覆盖

2.

网络流,最小费用流。

3. 线段树.

4. 并查集。

5.

熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp

6.博弈类算法。博弈树,二进制法等。

7.最大团,最大独立集。

8.判断点在多边形内。

9.

差分约束系统.

10. 双向广度搜索、A*算法,最小耗散优先.

时间: 2024-10-07 17:52:01

acm学习的相关文章

ACM学习-图双连通子图

// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<queue> #include<vector> #include<algorithm> using namespace std; const int v = 13; int edge[v][v] = { { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0

ACM学习历程—HDU 4726 Kia&#39;s Calculation( 贪心&amp;&amp;计数排序)

DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the sum of two digits exceeds 9. For example, when she calculates 4567+5789, she will get 9246, and for 12

ACM学习历程—HDU 5023 A Corrupt Mayor&#39;s Performance Art(广州赛区网赛)(线段树)

Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sell the worthless painting at a high price to someone who wants to bribe him/her on an auction, this seemed a safe way for mayor X to make money. Becaus

ACM学习参考资料

ACM学习参考资料 各种图论模型及其解答

ACM 学习心得

ACM 学习心得 STL:完美的艺术品 STL 由四大部分组成:算法.容器.迭代器.仿函数. 算法(algorithm) 算法定义了一组与实现无关的操作,也是 ACM 学习的核心.C++ 算法库的内容全都是一些比较基本的算法,包括移动.转换.遍历.删除.过滤等等.C++ 算法库本身是基于抽象的,在迭代器的抽象下,使得这些算法可以在不同结构的容器中重用.一个比较坑的地方就是我高中的时候学完 C++ 之后报名了 NOIP.那一年刚刚允许用 STL(之前一直不准用),然后我对于标准库的依赖很严重,连快

ACM学习资料整理

ACM学习资料整理 声明:参考泥瓦匠BYSocket.POJ题目分类推荐 (很好很有层次感)整理所得 1 推荐题库 ?http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以baidu 一个叫NOCOW 的网站.   ?http://livearchive.onlinejudge.org/ 上面有全部的赛区真题,绝大部分都可以提交,不适合当题库刷,不过在这里找题非常方便.

ACM学习历程—UESTC 1226 Huatuo&#39;s Medicine(数学)(2015CCPC L)

题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目就是构造一个对称的串,除了中间的那个只有1个,其余的两边都是对称的两个,自然答案就是2*n-1. 代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #

ACM学习-匈牙利匹配

匈牙利匹配先说一种简单情况,多了也是一样,比如A,B,C找对象,一开始A问B有没有对象,B说没有,OK,A告诉B以后你的对象是我,如果C也开始在周围(相连的节点)找对象,假如找到B,发现B已经有对象,就问B你周围有人单身吗,B发现A单身,就告诉A以后你的对象是我,否则再去询问A周围有没有人单身,依次类推下去,一旦找到类似A这样的单身B必须忍痛割爱承认以后他的对象是C.总结起来是这样的,一旦有节点找对象,找到的话,它访问过的节点就是一条长链,头是要找对象的节点,尾巴是单身的人,如果有中间节点的话,

acm学习报告

前言: "紧张刺激"的大一下学期马上就要结束了!从最初接触C++到现在也已经快要有1年的时间了.在大一上学期,c++课上学的基础知识大部分都是属于c语言的,为了熟练掌握这些基础知识,费老让我们做了很多的练习题.其实,我觉得,这些练习题也可以算是acm的范畴,只不过这些题实在是简单到不能再简单了.到了这一学期,或是说在寒假里,我才真正的知道了ACM题是有多么的困难!!说实话,在上学期做题做的挺轻松地,那是也觉得acm再难还能难倒那里去,于是我就跟随着远飞的脚步,没有犹豫的选修了ACM程序

acm学习总结

Acm总结 学到的算法和数据结构: STL的使用 STL是C++的标准模板库,提供了相当多的现成的库函数和数据结构,STL即可以极大地缩短代码长度,出错的概率.STL中的库函数包括sort排序函数,有find,lower_bound和upper_bound等一些查找函数用来简化代码,另外最常用的就是顺序容器和关联容器了,其实顺序容器可以相当相当程度上代替一些常用的基础数据结构如vector可以代替长度可变的数组(可以简单地实现邻接表),list可以代替链表,stack可以代替栈,deque可以代