随笔分类 - ACM
摘要:两个星期的奔波,加起来练了不到五天的紧张和匆忙,我们上了赛场。 比赛前一晚,我们遇到一个没有见过的类型题目的写法,我说比赛前夜晚熬夜这不是个好主意,星说,有题没弄明白睡不着,于是,我和他一直将前前后后的知识弄会,还模拟做了一些题目,到夜晚两点半才睡。 第二天,我们起的稍微有些晚,于是匆忙的赶到集合点,有点晕,但是整体良好,第一天见了大神小媛,还有许多南阳的大神,身边走过的都是大神小神,也就没啥新鲜感了,在小树林的周边,我们继续研读题目,这就是匆忙迎战的代价。 下午预赛,我们一看题,都会,但是代码敲得很坎坷,java平台有问题,无法用java,只能用c++,而相关的函数,那两个队...
阅读全文
摘要:我是从三点多才知道有比赛的,所以只剩下不到两个多小时,中间肚子疼,又上厕所一次,真是的。。参加吧,捡到哪到是哪到~不吉利的数字时间限制:1000ms | 内存限制:65535KB描述一些普通的数字在很多人眼里是不吉利。如数字4,谐音“死”,所以很多地方都没有带4的数字:比如新校区澡堂衣柜编号及没有4;再如数字13,在西方人眼中代表着坏运气,也是不吉利的数字,13不出远门,楼层不设第13层等等。假如某些人认为0是不吉利的数字,并且在他们以后的生活中,记录数据都在不在使用含有0的自然数。他们记录数的序列是1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,21
阅读全文
摘要:二分图问题关于匹配的一些定义http://zh.wikipedia.org/wiki/%E5%8C%B9%E9%85%8D_(%E5%9B%BE%E8%AE%BA)讲了一下二分图http://wenku.baidu.com/view/d1070024af45b307e8719770.html二分图最大匹配、最优匹配、最大独立集http://wenku.baidu.com/view/89914923aaea998fcc220e4b.html最详细的二分图的讲解http://imlazy.ycool.com/post.1603708.html刘汝佳的讲解http://wenku.baidu.com
阅读全文
摘要:Gone Fishing这道题目运用的多次折合成一次这种思想我首次见,我想的一个思路是,每次算一下鱼量和时间代价比,这个代码我没有敲,下面的代码是一位仁兄敲得,我研读了一下,做了一个注释,应该有利于后来者进行研读。这次代码中都加了注释,应该满足博客园的规定了~~Gone Fishing时间限制:3000ms | 内存限制:65535KB难度:5描述John is going on a fishing trip. He has h hours available (1 <= h <= 16), and there are n lakes in the area (2 <= n
阅读全文
摘要:这道题目是水题,刷刷水题,练习c++喷水装置(一)时间限制:3000ms | 内存限制:65535KB难度:3描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。输入第一行m表示有m组测试数据每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。输出输出所用装置的个数样例
阅读全文
摘要:NYOJ 7 街区最短路径问题时间限制:3000ms | 内存限制:65535KB难度:4描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;输入第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0<x,y<100,表示某个用
阅读全文
摘要:NYOJ 236 心急的C小加时间限制:1000ms | 内存限制:65535KB难度:4描述C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?输入第一行是一个整数T(1<T<1500),表示输入数据一共有T组。每组测试数据的第一行是一个整数N(1<=N<=5000),表示有N个木棒。接下来的一行分别输入N个木棒的L,W(0 <
阅读全文
摘要:第一种方法为自己写的,第二种方法为和队友讨论后改进。附一句话:博客园是一个分享程序员知识的地方,我不明白,写的代码为啥就不算这个分享的知识呢,为什么老是移除什么首页,不符合规定,所谓云云。。代码是程序员分享的一切的思想以及细节的终极体现形式。。。如果有一个博客,都是代码,我反而高兴,终于那些繁琐的,具有二义性、甚至多义性的歧义的文字终于没有了,只剩下了简明、逻辑、有效的东西。。。本来应该用c++写的,直接使用java写了,感觉更顺手。Radar时间限制:1000ms | 内存限制:65535KB难度:3描述Assume the coasting is an infinite straight
阅读全文
摘要:因为是临时准备参加省赛,队友都使用c++,所以我也必须使用c++,一直以来我都是java编码更顺手,c++大量的编码实践还是缺乏的,所以这正是一个磨练的机会,果断上去。该题目有两种做法,我看到题目的时候只想到一种,没有想到第二种,后来同队的人说有第二种,让我到网上看,后深入的看了网友们不同的做法和见解,才了解到还有第二种。做这个题目的时候发现两个问题,第一cin、cout还是没有scanf和printf来的快,这点在ac中得到验证,另外就是多余的语句会同样增加速度。我因为只想到一种方法,因此努力改进编码,最后过了,后来看到第二种解法,眼睛瞪得老大啦~~士兵杀敌(一)时间限制:1000ms ..
阅读全文
摘要:喷水装置(二)时间限制:3000ms | 内存限制:65535KB难度:4描述有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。输入第一行输入一个正整数N表示共有n次测试数据。每一组测试数据的第一行有三个整数n,w,h,n表示共有n个喷水装置,w表示草坪的横向长度,h表示草坪的纵向长度。随后的n行,都有两个整数xi和ri,xi表示第i个喷水装置的的横坐标(最左边为0),ri表示该喷水装置能覆盖的圆的半径。输出每
阅读全文
摘要:[转载]我为什么学ACM转载自:http://blog.sina.com.cn/s/blog_48d111f9010009qn.html写在转载前:刚刚看完一篇文章,我几乎眼泪都要下来了,有多少人懂得,做技术的人他们的精神,有多少人懂得,值得和热爱,这四个字对于一个纯技术的人来讲,是多么的高贵,你们懂么?懂么?希望我们能够更加的去懂得,希望我们身边的人能够懂得。时间过得真快,大三的上学期就要过去了,可以说这半年来,我只做了一件事,那就是准备并参加ACM-ICPC国际大学生程序设计竞赛。 做任何事情无论是对是错,都必须好好思考总结一番,如果我做错了,我应该吸取教训,改正错误;如果我是对的,那我.
阅读全文
摘要:zoj--题目分类不知道哪位大虾写的,N多的"简单题"zoj--题目分类DP: 1011 NTA 简单题 1013 Great Equipment 简单题 1024 Calendar Game 简单题 1027 Human Gene Functions 简单题 1037 Gridland 简单题 1052 Algernon\'\'s Noxious Emissions 简单题 1409 Communication System 简单题,但是很容易看错~~~ 1425 Crossed Matchings 简单题 1438 Asteroids! 简单题 1459 String Di
阅读全文
摘要:ACM入门(3)——图的遍历——广度优先搜索基本算法: 由Moore和Lee独立提出 给定图G和一个源点s, 广度优先遍历按照从近到远的顺序考虑各条边. 算法求出从s到各点的距离 广度优先的过程对结点着色. 白色: 没有考虑过的点 黑色: 已经完全考虑过的点 灰色: 发现过, 但没有处理过, 是遍历边界 依次处理每个灰色结点u, 对于邻接边(u, v), 把v着成灰色并加入树中, 在树中u是v的父亲(parent)或称前驱(predecessor). 距离d[v] = d + 1 整棵树的根为s BFS算法: BFS(G,s)//从s点开始对图G广度优先搜索for each vertex u∈
阅读全文
摘要:ACM入门(2)——数据结构——堆排序 作为内部排序中的重要一员,堆排序是对简单排序中的“选择排序”的优化,常见的是以数组构造的完全二叉树,其结构列类似世界杯16强后的淘汰赛(想想各豪强的对决形势图),自顶向下每个节点往下至多有两个分支,其结构的优点是最优者不必与其它各队比较即可捧杯,这样即可将选择排序中逐个比较的缺点消除,时间复杂度由n级别降到log(n);排n个数即为O(n*log(n))。 对堆的操作主要是在末尾添加元素和取出堆顶元素,每次在堆尾添加元素后总要由此向上调整,保持堆的堆顶最优(最大或最小);同时每次取堆顶元素时,总是先将堆顶元素取出,然后将堆尾元素放在堆顶,接着从上往下进行
阅读全文
摘要:ACM入门(1)——数据结构——并查集 并查集 一、检索某元素属于哪个集合(find()函数) 二、合并两个集合(union()函数) 能够查找某个元素属于哪个集合(即“查”),同时能够实现集合的合并(即“并”),这样的数据结构,我们称之为并查集。 并查集的实现:(C/C++) #define max_size 元素个数 int parent[max_size];//用memset(parent,-1,sizeof(parent));初始化 int find(int x) { if(parent[x]>0) parent[x]=find(parent[x]);//递归查找,同时起到了压缩
阅读全文

浙公网安备 33010602011771号