摘要: 题目链接蛋疼的一个题,根本看不懂天马行空的题意,各种翻译工具也搞不了。。。模版题,我却怎么也没看出怎么套模版来。。。基本上全部参考的解题报告。。。了解了树状数组非常需要注意的地方树状数组时没法搞0的。。。。不然会TLE。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 32100 4 int p[N],level[16000]; 5 int lowbit(int t) 6 { 7 return t&(-t); 8 } 9 void insert(int t,int d)10 {11 while(t & 阅读全文
posted @ 2012-07-17 21:18 Naix_x 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目链接对这个知识不熟啊。。。。自己找了一篇论文,上边一个题,貌似和这个差不多,谁知一点都不一样,怎么也不理解如何通过更改a b之间的全部+1,通过树状数组中更新数组的a和b+1,来操作。。。。实在理解了不了,看了解题报告发现和论文上的题,不一样啊。。。只需要insert(a,1)和insert(b+1,-1)就好了,瞬间我被秒了,意义马上就理解了。。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 100001 4 int p[N],n; 5 int lowbit(int t) 6 { 7 return 阅读全文
posted @ 2012-07-17 15:48 Naix_x 阅读(355) 评论(11) 推荐(0) 编辑
摘要: 题目链接以前用普通方法150+ms 今天看了书上有这个题的详细树状数组的代码,理解下,敲敲交上居然300ms+,我正纳闷的时候,交上以前的代码TLE了。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 50005 4 int p[N],n;//p[i] 就代表从i - i&(-i)+1到i的和 5 int lowbit(int t)//寻找低位起第一个非0位 6 { 7 return (-t)&t;//如4二进制是100所以就是4,如7二进制为111,是1 8 } 9 void insert 阅读全文
posted @ 2012-07-17 10:20 Naix_x 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目链接省赛热身赛C题,当时还不会DFS。。。我是直接暴力枚举了9个点,加上个小剪枝,去判重复的操作很重要。。。我在DFS中开一个数组记录在这一层是否搜过这个数。开始忘加Case , 2Y。 1 #include <stdio.h> 2 #include <string.h> 3 int p[10],o[10],k[10],z; 4 void dfs(int x) 5 { 6 int sum,sum1,i,j,a; 7 int q[10],w; 8 if(x > 9) 9 {10 sum = k[1] + k[2] + k[3];11 ... 阅读全文
posted @ 2012-07-17 08:29 Naix_x 阅读(192) 评论(0) 推荐(0) 编辑