● 数据结构与算法 & ACM etc.
bat67
这个作者很懒,什么都没留下…
展开
-
挑战程序设计竞赛2:算法与数据结构(电子书与代码)
挑战程序设计竞赛2:算法与数据结构《挑战程序设计竞赛2:算法与数据结构》电子书和配套代码,链接在此Introduction本书分为准备篇、基础篇和应用篇三大部分, 借助在线评测系统 Aizu Online judge 以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、 图、计算几何学、数论等与程序设计竞赛相关的算法和数据结构, 既可以作为挑战程序设计竞赛的参考书,也可以用来引导初学者系统学习算法和数据结构的基础知识。本书适合所有程序设计人员、程原创 2020-08-25 19:25:25 · 3174 阅读 · 0 评论 -
欧几里得距离、曼哈顿距离与切比雪夫距离
欧几里得距离,欧氏距离,也就是我们熟知的距离,可扩展至m维 2维:d=sqrt((x1-x2)2+(y1-y2)2) 3维:d=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2) m维:d=sqrt(∑(xi,1-xi,2)2) 一般形式曼哈顿距离,出租车距离,在一个横竖分布的网格上,两点之间的距离即为曼哈顿距离原创 2017-05-19 11:03:04 · 716 阅读 · 0 评论 -
欧几里得距离、曼哈顿距离和切比雪夫距离
欧几里得距离,欧氏距离,也就是我们熟知的距离,可扩展至m维 2维:d=sqrt((x1-x2)2+(y1-y2)2) 3维:d=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2) m维:d=sqrt(∑(xi,1-xi,2)2) 一般形式曼哈顿距离,出租车距离,在一个横竖分布的网格上,两点之间的距离即为曼哈顿距离原创 2017-05-19 10:53:50 · 1293 阅读 · 0 评论 -
计算几何题单整理
先是计算几何入门题推荐 :计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很 巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模 板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍, 或扩大sqrt2)。原创 2017-05-16 19:56:08 · 1878 阅读 · 2 评论 -
ACM-ICPC 常用算法刷题网站整理
Virtual JudgeACM-ICPC Live Archive - HomeUVa Online Judge - HomeWelcome To PKU JudgeOnline(POJ)Welcome to Hangzhou Dianzi University Online Judge(HDU)OpenJudge - 百练 - 首页(PKU)CodeforcesPr原创 2017-05-26 12:47:22 · 9595 阅读 · 0 评论 -
ACM新手入门扫盲
前言本帖是给本校大一生写的,致力于给有志于搞ACM-ICPC的同学一个了解概况的机会,是基本的入门扫盲帖子。诣在给出一个大局观,给出一个可以努力的方向。以下纯属个人见解,若有谬误,敬请指出。关于ACMACM是一项非常难的竞赛,需要大量的训练时间,需要强大的抗压能力,需要良好的团队配合,需要足够的天赋。以上四点除了最后一点以外都是可以用足量的时间来换取的,天赋可以让你在天才之转载 2017-05-15 21:57:30 · 3728 阅读 · 0 评论 -
zoj浙大acm题目分类整理
DP:1011 NTA 简单题1013 Great Equipment 简单题1024 Calendar Game 简单题1027 Human Gene Functions 简单题1037 Gridland 简单题1052 Algernon\'\'s Noxious Emissions 简单题1409 Communication System 简单题,但是很容易看错~~原创 2017-05-15 21:56:19 · 6902 阅读 · 0 评论 -
杭电ACM题单整理
杭电acm题目分类版本11002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键10111012 简单题1013 简单题原创 2017-05-15 21:53:55 · 4478 阅读 · 1 评论 -
ACM题集以及各种总结大全!
ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正。 一.ACM入门 关于ACM 百度百科连接 杭州电子科技大学(hdu)ACM题目 连接转载 2017-05-15 21:52:05 · 593 阅读 · 0 评论 -
二分查找及其变形整理
1 二分查找 二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。(图片来自《算法-第4版》)/** * 二分查找,找到该值在数组中的下标,否则为-1 */static int binarySera原创 2017-05-14 18:41:15 · 1425 阅读 · 1 评论 -
【好东西】ACM在线模版-f-zyj
感谢这位dalao费心血整理了这份模板,谢谢!原链接:http://blog.csdn.net/f_zyj/article/details/51473493ForeWord六月六开始(话说,开始的日子真是个吉利的日子)到七月廿六,五十天整,终于将ACM在线模版整理完毕,想想还有点小激动呢~话说,我为什么执着于整理这个模板呢?既费时又费力,差不多,五十天都在忙这个。转载 2017-05-12 20:21:27 · 1153 阅读 · 2 评论 -
关于二分查找及其上下界问题的一些思考
个人认为在编程的时候,我的代码能力应该是到位的,但是昨天参加的某公司笔试彻底把这个想法给终结了,才意识到自己是多么的弱。其中印象最深刻的是一道关于二分查找上下界的问题。当时洋洋得意,STL 分分钟搞定,结果到了面试的时候他要我自己重新实现一下。这个时候就拙计了,拿着笔的我是写了改改了写,最后勉强算是完成。今天反思一下,决定自己再把二分查找重新实现一下。也作为给自己的一个警醒,不要总以为自己能力...转载 2016-07-29 12:02:39 · 1095 阅读 · 0 评论 -
SPOJ简介
SPOJ是波兰最为出色的Online Judge之一,界面和谐,题目类型也非常丰富,适合有一定基础的选手练习,对高手而言也是个提高能力的良好平台。 SPOJ题目分类:classical,challenge,partial,tutorial。 1)classical:ACM题型,通过所有数据才能算AC 2)challenge:有趣的题目,每个题目有不同的评分...转载 2016-07-26 11:02:13 · 13240 阅读 · 3 评论 -
算法和数据结构的实际应用
Algorithms that are the main driver behind a system are, in my opinion, easier to find in non-algorithms courses for the same reason theorems with immediate applications are easier to find in applied ...转载 2016-07-25 20:44:33 · 1157 阅读 · 0 评论 -
奇偶剪枝
明天再详细补充。。。百度百科粘过来的 奇偶剪枝是数据结构的搜索中,剪枝的一种特殊小技巧。描述现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点, s | | | ...原创 2017-05-17 22:56:24 · 686 阅读 · 0 评论 -
acm的做题技巧
1.一般用C语言节约空间,要用C++库函数或STL时才用C++;cout、cin和printf、scanf最好不要混用。大数据输入输出时最好不要用cin、cout,防止超时。(或加上1 ios::sync_with_stdio(false); 2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。值类型表示值介于 -2^63 ( -9,223,372,036,85...转载 2018-03-25 23:52:58 · 803 阅读 · 0 评论 -
OJ中提交Java程序的一些套路
1. Main类与Scanner1.1 Main类你提交的所有程序都应该以如下形式出现public class Main{ public static void main(String[] args){ //其他代码 }}即,代码中必须存在一个public class Main。不允许出现其他的public class。1.2 输入与输出Java中使用Sca...转载 2018-03-25 13:40:52 · 18261 阅读 · 10 评论 -
OJ中提交Python3程序的一些套路
0. FAQ0.1 提交后提示“答案错误”或者“格式错误”PTA检查答案正确与否是通过字符串匹配实现的。所以可能有以下几种原因:格式错误:程序的输出要与题目中的样例输出格式一样(输出内容根据运行结果不同而变化),程序输出的结果多一个空格、少一个空格,都不行。比如输出样例为1 + 2 = 3,你的输出却是1+2=3 ,错误原因分析:在+与=两边少了相应的空格,在3后面却多了空格。在input()中填...转载 2018-03-25 13:37:55 · 4540 阅读 · 1 评论 -
ACM向:关于优先队列priority_queue自定义比较函数用法整理
关于优先队列priority_queue自定义比较函数用法整理原来上不了网,写在word里了,代码什么的直接贴过来了,有空整理成高亮的形式。0.0、首先注意一点,priority_queue没有front()方法,和一般的queue不一样,与这个方法对应的是top()0.1默认的:它的模板声明带有三个参数,priority_queue<Type, Container, Fun...原创 2017-08-25 19:21:08 · 15321 阅读 · 12 评论 -
《挑战程序设计竞赛》 勘误 (转载+自己补充)
P113:倒数第二段第一句“min(y1,y2)1,x2)”应改为“min(y1,y2)1,y2)”。P130:上面问题描述的限制条件“1NPP132:Millionaire的问题描述第二句“一开始你有x元钱,接着进M轮赌博” 应改为“一开始你有x元钱,接着进行M轮赌博”。P152:一开始第一个求和“f [原创 2016-07-23 19:41:10 · 2643 阅读 · 3 评论 -
1000亿以内的素数统计(Meisell-Lehmer算法)
今年沈阳有个素数计数的题,但是数据到了1e11,大概用Meisell-Lehmer能跑到2、3秒的样子,但是据说还有一种Deleglise Rivat的算法特别快,大概1e16差不多才3、4秒的样子,但是网上没有找到板子,所以就发一个Meisell-Lehmer的模板,1e11内的数差不多都能在5秒内处理完:#includeusing namespace std;typedef lon转载 2017-08-08 12:59:52 · 1243 阅读 · 0 评论 -
ACM必练50题
POJ推荐50题1. 标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。2. 标记为 A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。4. 这里不少题目在 BUPT ACM FTP 上面都有代码,请大家合理利转载 2017-05-12 15:25:33 · 13594 阅读 · 0 评论 -
一位ACMer过来人的心得
刻苦的训练我打算最后稍微提一下。主要说后者:什么是有效地训练? 我想说下我的理解。 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。 我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。 其实,500题转载 2017-05-12 15:05:45 · 289 阅读 · 0 评论 -
转自matrix67大神:USACO上的一段录音
Listen to this amusing MP3 file that explains it all for computer geeks. 觉得上面的文字熟悉吗?如果一点印象也没有,你可要反思一下了。做USACO做了这么久,竟然从没发现登陆页面上的这一段文字。或许在注册和登陆时,你该改变一下机械操作的作风了。这是USACO登陆页面上的一个链接,指向一个Mp3文件。转载 2017-01-16 20:11:40 · 672 阅读 · 0 评论 -
算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成。打牢基础,厚积薄发。 一、UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久、最著名的OJ。 二、《算法竞赛入门经典》 刘汝佳 (UVaOJ 351道题)转载 2016-07-25 19:59:54 · 2830 阅读 · 0 评论 -
刷题也就这么点地方
废话今天,我们来聊聊刷题。如果直接想看干货,就直接拉倒最后的结论就好,看看我们的建议。码农么,就是要任性、直接一点。 有不同意见,也要直接在公共号中提出来。我们好根据情况,实事求是的改啊。(我说改,你信么?反正我是信了。) 如果觉得文章好,大爷们就把文章分享了吧。传说中分享的次数越多,收割的Offer越多哦。 (。☉౪ ⊙。) 别刷傻了每一个想找程序员工作的应届生,...转载 2016-07-26 11:05:04 · 4377 阅读 · 0 评论 -
整理:一些主流的编程竞赛网站 && 对比
今天把各个主流的编程网站仔细对比了一下,下面从各个角度对比一下这些编程竞赛网站。分类和排名网站地址类别PRATRQF主办方备注TopCoder综合633,5864167TopCoder公司 Cod原创 2016-07-28 13:47:19 · 12020 阅读 · 1 评论 -
整理:OJ系统及ACM测试题库大全
OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。国内著名的题库有北京大学题库、浙江大学题库等。国外的题库包括乌拉尔大学、瓦拉杜利德大学题库等。简介: Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检原创 2016-07-28 13:50:17 · 10332 阅读 · 1 评论 -
很特别的一个动态规划入门教程:通过金矿模型介绍动态规划
很特别的一个动态规划入门教程今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~(说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这种中国式的教育已经延绵了几千年了,现在中国的教材还是这个样子,讲清楚些明白些就那么难么?高中有个老师讲的一句话一直觉得很有道理:“教得会天才不是真本事,能把博士生的东西讲...转载 2016-08-01 17:45:05 · 660 阅读 · 0 评论 -
POJ 完整分类
DP: 1011 NTA 简单题 1013 Great Equipment 简单题 1024 Calendar Game 简单题 1027 Human Gene Functions 简单题 1037 Gridland 简单题 1052 Algernon s Noxious转载 2016-08-05 09:23:41 · 4728 阅读 · 0 评论 -
POJ测试数据合集
本文部分链接可能已失效测试数据仅供参考学习之用希望各位同学不要用来刷题==================================== 1、USACO2006年November题目和测试数据的网址http://ace.delos.com/NOV062007年open赛题目和测试数据的网址http://ace.delos转载 2017-05-10 22:55:08 · 2832 阅读 · 0 评论 -
OJ提交题目中的语言选项里G++与C++的区别
一、OJ提交题目中的语言选项里G++与C++的区别首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。那么他们之间的区别是什么?在提交题目中的语言选项里,G++和C++都代表编译的方式。准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译。如果你使用的是G++的话,意味着你将使用GNU项目转载 2017-03-13 20:30:58 · 1006 阅读 · 0 评论 -
常见OJ评判结果对照表
Waiting:你的程序刚刚提交,正在等待OJ评测你的程序。 Compiling:OJ正在编译你的程序。 Accepted:OK!你的程序是正确的 ^_^。 Wrong Answer:你的程序运行的结果和正确结果不同。状态页面CASE那一览显示的是你的程序在第几个样例上出错的。 Time Limit Exceeded:你的程序运行时间太长了,超过了对应题目的时间限制...原创 2017-03-27 21:56:11 · 6832 阅读 · 0 评论 -
每个程序员都应该收藏的算法复杂度速查表
算法复杂度这件事这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 OBig-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查...转载 2016-07-23 21:14:49 · 611 阅读 · 0 评论 -
POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:转载 2016-07-25 20:50:32 · 305 阅读 · 0 评论 -
什么是段错误
什么是段错误段错误是指程序尝试访问一段不可访问的内存。在类Unix系统中,当出现段错误时,系统发送信号量SIGSEGV给产生段错误的进程;在Windows系统中,系统会发送异常STATUS_ACCESS_VIOLATION给产生段错误的进程。产生段错误的原因程序运行过程中能访问到的内存空间主要有栈和堆。栈存放了函数的本地变量,堆是程序运行过程中能够自由分配和使用的内转载 2016-07-27 11:59:13 · 9981 阅读 · 0 评论 -
整理:OJ 测试数据
1、USACO2006年November题目和测试数据的网址http://ace.delos.com/NOV062007年open赛题目和测试数据的网址http://ace.delos.com/OPEN07以此类推2、日本ACM比赛http://www.acm-japan.org/http://icpc2010.honiden.nii原创 2016-07-28 13:43:23 · 5890 阅读 · 0 评论 -
动态规划:从新手到专家
动态规划:从新手到专家前言我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。 这篇文章是基于实例展开来讲的,因为干巴巴的理论实在不好理解。注意:如果你对于其中某一节已经了解并且不想阅读它,没关系,直接跳过它即可。简介(入门)什么是动态规划,我们要如何描述它?动态规划算法通常基...转载 2016-08-01 17:39:16 · 465 阅读 · 0 评论 -
在 ACM竞赛中,为什么美国的公认的计算机名校,如 MIT,斯坦福、加州伯克利、卡内基梅隆,表现不如中国和俄罗斯的高校?
知乎上看到的比较好的解释:是这样,我在美国念书,去年的时候我参加regional比赛时我们赛区有些非常出名的计算机学校,但是我们很轻松的就把他们秒杀了,还差一点进final。其实这个问题说起来很好解释,我上大学之后明显编码水平下降了, 因为在北美念书你会发现主要做的都是一些开创性的工作,整体教育体系是不赞成学生做大量重复性工作的。在美国主要是培养的你的一种学习和创新的能力,也就是为什么美国培养...转载 2016-08-03 17:49:42 · 6057 阅读 · 0 评论 -
POJ题目分类推荐 (很好很有层次感)
OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法.转载 2016-08-05 09:26:23 · 529 阅读 · 0 评论