摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=3044当初我看到它的公式这么复杂,所以就一下子忽略这题了,想起来还真有点后悔。好的,我翻译一下这一的意思吧!其实就是告诉你两个人和一条狗各时刻的瞬时速度,让你求出两人相遇的时候狗跑了多长的距离。当然,这里的相遇只需要两人相距10m以内。这个看上去很复杂的积分题如果在你做的时候注意一些细节,那么你就可以瞬间秒杀它了。我的做法是在积分的过程中,把sin(sin2t)sin(cos2t)看做一个整体,假设是间接时间x(因为两者是一一对应的)。那么,此时的两个人对其速度和的积分就只是积v=v1sin(1)/x,最后在 阅读全文
摘要:
http://ac.jobdu.com/problem.php?id=1402 这是jobdu的好题,网上的解说都是用位运算的,但是我现在对位运算还不太了解,所以我的代码是用对数组的压缩使用来实现对小数目个数的统计的,也因此对存储空间的利用是不够充分的。原理解释:一个int是4个字节组成的。在这题里面,如果开10^6的数组,4*10^6B≈4MB,这还没加上运行程序命令所需要的内存。由此可见,这样开数组是必定MLE的。但是我们可以发现,对于这题而言,每个数中我们所需要的状态只有0,1,2三种,于是我就想到数组在内存中的存储方式,并模仿它建立起一个大小只有50000的int数组。10^6 / ( 阅读全文
摘要:
http://ac.jobdu.com/problem.php?id=1008 这是在一个叫做九度的OJ上面的题,这是一个典型的最短路问题。题目很简单,就只有一个要注意的地方,就是路径有可能是重复的,要把这种情况考虑进去。我就是为此WA了好几次,最后只好参考那里的BBS,才知道原来这题是要检测重复路径的。改了以后就立刻AC了! 这题是我第一次用Dij算法做的题,因为以前都只会Floyd算法,用在这里后就TLE了一次,因为这里有1000个点,如果用Floyd的话,O(n^3)在就是最少10^9次运算了。后来想起了Dij的算法,然后根据我印象中对Dij算法的思路,打了我第一个Dij算法的代码。 下 阅读全文
摘要:
从其他博客复制过来的,因为这个够详细,转过来学习一下!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束后有系统释 阅读全文
摘要:
今天下午打了第一场省赛选拔赛,八题只AC了三题…… 最大的遗憾是碰见一个最短路的水题,就因为英文看了半天,浪费了不少时间,最终迟了一分钟才提交。另外最最大的遗憾就是……我copy了代码,回来在poj提交,居然1Y了…… 题目大概是这个意思:按顺序给出各个人与其他人的信息传播所需要时间的关系,建立有向图,求出从哪个人开始传播谣言可以最快让全部人知道。同时,要求出从这个人开始传播开始到最迟收到谣言的人所需要的时间。 下面是我的代码,旁边注有解释:http://poj.org/problem?id=1125View Code 1#include<stdio.h>2#include< 阅读全文
摘要:
在看过我们学校前几届的大牛他的博客后,我决定也用Exponentiation来作为我的第一篇解题报告,不过我用的是hdu的Exponentiation。http://acm.hdu.edu.cn/showproblem.php?pid=1063 之所以我用hdu的而不用poj 1001的题,是因为这个的技术含量相对较高。poj 1001的那题我依稀记得当时我用了半个小时AC了,但是我在hdu的acm step里面再次遇到它时却耗费了我将近两个小时来AC。其中一个原因是hdu出的数据太坑人了,明明说好的是含小数的100以内的数,但是在我WA后,我不断地修改,不断地参考别人的代码,最后才发现原.. 阅读全文