摘要: 今天突然发现memset的原理,如memset(p,0,sizeof(p)),这句话特别常见,讲所有的元素初始化为0,但是memset(p,1,sizeof(p)),却是将所有的元素初始化为16843009,以前也知道不能初始化为1,但是原因就不得而知了。那天研究别人代码,发现一句相当于是memset(p,243,sizeof(p))的语句,却是把整个数组赋值为-202116109,我十分不解。。本来想就算了的,但还是查一下百度。。。原来memset是将1个字节(8位数字)初始化为那个数,所以前面的问题都可以解释了,1的二进制是00000001,int有4个字节,所以初始化为所有的数初始... 阅读全文
posted @ 2012-08-02 19:01 Naix_x 阅读(999) 评论(0) 推荐(0) 编辑
摘要: 题目链接这是拓扑排序? 我很纳闷。。有重边WA了N次。。。 1 #include <stdio.h> 2 #include <string.h> 3 int p[501][501],o[501],n,k[501],z; 4 void dfs() 5 { 6 int i,j,nu = 1; 7 while(nu <= n) 8 { 9 if(i == n+1)10 break;11 for(i = 1; i <= n; i ++)12 {13 if(o[i] == 0&&!k[i])1... 阅读全文
posted @ 2012-08-02 10:57 Naix_x 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目链接加强版的传纸条,必须用三维解法。而且要注意初始化成负数,不然就会WA到死。。。看大神代码,用memset初始化负数。。。 1 #include <stdio.h> 2 #include <string.h> 3 int p[301][301],o[621][301][301],i,j,k; 4 int getmax(int a,int b,int c,int d) 5 { 6 int max; 7 max = a; 8 if(max < b) 9 max = b;10 if(max < c)11 m... 阅读全文
posted @ 2012-08-02 09:30 Naix_x 阅读(210) 评论(0) 推荐(0) 编辑