摘要: Evolving Culture vs Local Minima:文化、进化与局部最小值: http://www.cnblogs.com/neopenx/p/4860106.html 对话机器学习大神Yoshua Bengio(上): http://www.infoq.com/cn/articles 阅读全文
posted @ 2016-06-08 07:44 howardcn 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 《将博客搬至CSDN》 阅读全文
posted @ 2013-11-19 13:27 howardcn 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 本来就是水题一道。题意:一个人要从点1去到点2,中间还有很多点和很多条边。问你如果他每次走的边(a,b)都满足:a点到目标点的最短距离 2 #include 3 #include 4 #include 5 using namespace std; 6 const int maxn=1005; 7 const int INF=0x3f3f3f3f; 8 struct Edge{ 9 int from,to,dist;10 };11 struct HeapNode{12 int d,u;13 bool operator rhs.d;16 }17 };18 st... 阅读全文
posted @ 2013-10-11 22:45 howardcn 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一幅画,找出里面的象形文字。要你翻译这幅画,把象形文字按字典序输出。思路:象形文字有一些特点,分别有0个圈、1个圈、2个圈...5个圈。然后dfs或者bfs,就像油井问题一样,找出在同一块的0,找出在同一块的1,分别标上记号。对于每个同一块的1,如果它们只和1个‘0’的块相邻,就表明这个象形文字没有圈。如果和2个‘1’的块相邻,就说明这个象形文字有一个圈。依此类推...和6个‘1’块相邻的就有五个圈。最后统计一下每个象形文字和多少不同的块相邻,排一个序,输出。 要注意的是,处理输入的时候,给读入的图的周围留一个‘0’构成的圈。为什么呢?这个自己想。 1 #include 2... 阅读全文
posted @ 2013-10-11 20:16 howardcn 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 题目给出的是Sij的正负号,Sij=ai+...+aj,所以令前缀和Bi=a0+a1+..+ai,a0=0,B0=0,则有Sij=Bj-B(i-1);由此构造出Bi的拓扑序列,只要每个拓扑序列相邻的Bi的值只相差1,那样总共只有不会超过10个Bi,最大的Bi和最小的Bi的差值的绝对值小于10,因为ai=Bi-B(i-1),ai的绝对值就必然不超出10; 1 #include 2 #include 3 #define CL(x) memset(x,0,sizeof(x)) 4 const int maxn=15; 5 bool map[maxn][maxn]; 6 char str[maxn.. 阅读全文
posted @ 2013-10-06 08:34 howardcn 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 大神博客链接http://blog.csdn.net/kksleric/article/details/8021276这道题的差分序列从没看过,公式题。先构造从0到m的第p阶差分序列,算出0^p,1^p,...,p^p,填入表的第一行;然后前向差分,求出以下所有(p-1)~1阶部分的差分表,差分表的最左边一竖行记作C0、C1...Cp。令C[n+1][1]=n,用递推构造C[n+1][1]~C[n+1][p+1]的组合数打个一维表C[];最后利用C0*C[1]+C1*C[2]+...+Cp*C[p+1]得出答案...Orzimport java.io.PrintWriter;import ja 阅读全文
posted @ 2013-10-04 20:19 howardcn 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环。可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路首先判断是否在一个联通分量中,在判断是否存在欧拉回路,最后输出欧拉回路。 1 #include 2 #include 3 const int maxn=55; 4 const int INF=1x)mn=x;if(mn>y)mn=y;37 if(mx<x)mx=x;if(mx<y)mx=y;38 x=find(x);y=find(y);39 ... 阅读全文
posted @ 2013-10-04 15:20 howardcn 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 首先讲一下RMQ算法的意思。RMQ(Range Minimum Query,RMQ)范围最小值,给出一个n个元素的数组,计算min(A[L],A[L+1],...,A[R-1],A[R]);这里运用了dp,先构建d[i][j]表示第i位开始2^j个元素中最小的值;转移方程d[i][j]=min(d[i][j-1],d[i+2^(j-1)][j-1]);建议画一张图来体验一下这个的意思。实现:1 void RMQ_init(int n)2 {3 for(int i=1;i=(R-L+1)/2;从L开始往右找2^(j-1)个元素的最小值,即d[L][j-1];以R结尾的连续的2^(j-1)... 阅读全文
posted @ 2013-09-26 12:06 howardcn 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意:迷宫里起火了,有若干个障碍物,有多个起火点,起火点每经过一个时间间隔就向它的上下左右相邻的格子扩散。有个倒霉的人好像叫做“Joe”,他要逃出来,他每次可以向上下左右任意移动一格,但是即要避开火也要避开障碍物,问你他如果逃得出来的话至少要多少步。没有着火点的话就直接,bfs了,但是有的话就稍微与处理一下,我们可以通过对着火点bfs,从而知道每个格子在什么时间着火。这样的话,只要先bfs着火点,把每个格子在什么时间着火保存到数组里;然后bfs那个人,在判断他可不可以那个格子的check函数增加一步,检查他走过去的时间是不是小于起火的时间。源代码: 1 #include 2 #inclu... 阅读全文
posted @ 2013-09-25 22:20 howardcn 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 对于我这样一名脑残ACMer选手,这道题看了好久好久大概4天,终于知道怎样把它和“树状数组”联系到一块了。树状数组是什么意思呢?用十个字归纳它:心里有数组,手中有前缀。为什么要用树状数组?假设你要储存一段数字的前缀和,还要动态修改这些数字。怎么办?通常的想法就是用数组a[]保存所有的数字,再用数组s[]保存每一位上的前缀和。1 for(int i=1;i=0)。令C[x]=A[x-lowbit(x)+1]+A[x-lowbit(x)+2]+...+A[x],那么每个C[x]都会对应一部分它的lowbit(x)范围内的A[i]。假如我要求x的前缀和,只要先取出C[x],再取出C[x-lowbit 阅读全文
posted @ 2013-09-24 22:03 howardcn 阅读(227) 评论(0) 推荐(0) 编辑