算法之dfs篇
摘要:dfs算法是深度搜索算法。从某一节点开始遍历直至到路径底部,如果不是所寻找的,则回溯到上个节点后,再遍历其他路径。不断重复这个过程。一般此过程消耗很大,需要一些优化才能保持算法的高效。 hdu1010:(奇偶剪枝) 主要题意是一只小狗为了一块骨头,然后进入迷宫。当它拿起骨头的时候,迷宫开始下沉。小狗
阅读全文
浅谈ByteBuffer转换成byte[]时遇到的问题
摘要:有些时候我们要把ByteBuffer转换成byte[]来使用。于是很多时候会用以下代码来转换; ByteBuffer buf; .....(一些往buffer写数据的操作) byte[] bs= new byte[buf.capacity()]; //想把buf里所有的byte都拿出来 buf.ge
阅读全文
java的原子变量
摘要:java的原子变量类似c++的InterlockedDecrement()操作。其实就是在进行算术时,把整个算式看为一个整体,并且保证同一时间只计算该式子一次。 它的用途比如,多个线程可能会调用某个函数。但是现在只希望它被调用一次后就不被调用了。此时就可以用原子变量来控制,它比对整个方法加锁更加高效
阅读全文
算24点的算法,有输出
摘要:主要使用了dfs的算法,比较麻烦的是如何去重,去重第一步可以用set来保存式子,然后再去多余的括号,然后在用另一个set去重。但是做到真正的去重还是比较麻烦,如果有好的建议的博友,可以私信。比如1*2*3*4与2*3*1*4其实是重复的2*(1+2)*4与2*4*(1+2)是重复的。 代码如下:
阅读全文
A题时遇到的一些技巧
摘要:这篇主要是讲刷题时候遇到的一些技巧,该篇保持持续更新状态。。 1、求数组的长度:int a[]={,,,}; int n = sizeof(a)/sizeof(a[0]) 2、求想上取整,例如7/3 = 4; int res = a/b + !!(a%b); 3、求数组全排序,先对数组进行从小到大排
阅读全文
排序之堆排序
摘要:对于堆排序,我觉得算法导论上写的已经很好了,没学过的可以去看一下。
阅读全文
算法之贪心算法篇
摘要:hdu1257 题目刚开始理解错了,该题可以同时有几个拦截系统并行的。题目不算难。 #include<iostream> #include<cstdio> #include<vector> using namespace std; int main() { int n; while(~scanf("
阅读全文
算法之大数加减乘除
摘要:大数加法: 例题 hdu1002 #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define N (1010) void big_add(char* res,char* sa,char* sb)
阅读全文