上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 71 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4325多校联合3上的题 对线段树还不是太了解 只知道这道题是线段树 打的代码那叫一个纠结啊 。。交上还TLE昨天晚上仔细想了想 明白是怎么回事了 就是建一个线段树 找到指定的区间加1 询问的时候 看在哪些区间里 把这些区间都加起来w定义的int类型的 一直出错 后来一想 存不了 改了就对了View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 100001 4 __int64 s[4*N],re; 5 void bu 阅读全文
posted @ 2012-08-01 09:37 _雨 阅读(192) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1942View Code 1 #include<stdio.h> 2 int main() 3 { 4 __int64 s,n,m,i,j,k; 5 while(scanf("%I64d%I64d", &n,&m)!=EOF) 6 { 7 if(n==0&&m==0) 8 break; 9 s = 1;10 if(n>m)11 k = m;12 else13 k = n;14 ... 阅读全文
posted @ 2012-07-31 20:58 _雨 阅读(215) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2049与一般的BFS不大一样 是把网格转换成我们常用的点以左下角的点表示整个方格 用优先队列来保证每次搜的都是最小的 注意Nemo的位置有可能不在墙内之前把sx看成tx一直调试不出来 ,,纠结了一天 第二天一眼看出它俩不一样。。改完之后 找了找结构体的优先队列怎么用 按知道上回答写的 一直WA 后来看人家的解题报告 发现不是那么用的,改过来交上AC。。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #inc 阅读全文
posted @ 2012-07-31 18:22 _雨 阅读(217) 评论(0) 推荐(0)
摘要: View Code 1 #include 2 #include 3 char c1[1000011],c2[1000011]; 4 int next[1000011]; 5 int kmp() 6 { 7 int k = strlen(c1),i,j,y = -1; 8 memset(next,0,sizeof(next)); 9 next[0] = -1;10 for(i = 1; i -1&&c1[i]!=c1[y+1])13 y = next[y];14 if(c1[y+1]==c1[i])15 ... 阅读全文
posted @ 2012-07-30 22:00 _雨 阅读(322) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2689筛选素数 先建一个小素数表 2-sqrt(max) 再根据这个表来进行区间素数的筛选View Code 1 #include<math.h> 2 #include<stdio.h> 3 #include<string.h> 4 __int64 x[1000011]; 5 int pr[46500],pd[46500],pg[1000011]; 6 int main() 7 { 8 __int64 n,m,x1,x2,x3,x4,y; 9 int i,j,k;10 for(i = 2 ; i < 阅读全文
posted @ 2012-07-30 15:55 _雨 阅读(186) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2299求逆序数第一种做法 利用归并排序 在进行两个升序数组归并时 如果右边指针指向的那个数比左边小 那从左边那个位置到mid的数都比右边那个数大 所以比它大的数的个数就是 左边那个数到mid之间的数 依次类推View Code 1 #include <stdio.h> 2 #include <string.h> 3 long long a[500001],num,x[500001],y[500001]; 4 long long msort(long long low,long long mid,long long h 阅读全文
posted @ 2012-07-28 13:22 _雨 阅读(213) 评论(0) 推荐(0)
摘要: 1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。 应用: a. 清零特定位 (m 阅读全文
posted @ 2012-07-28 10:07 _雨 阅读(779) 评论(2) 推荐(0)
摘要: http://poj.org/problem?id=2777网上的一段解释经典的线段树题目。成段更新,在利用一个数组在查询顺次整段区间时,登记未曾被遮蔽到的颜色,并对其所对应的编号符号为1.而在成段更新结点时,若某区间将揭示混杂色,就让其子节点更新为它的颜色,并符号该结点。总之,对于成段更新区间属性的题目等闲用线段树来处理,利用时要保留结点属性的单一性,但更新摧毁了这种单一性时,则应递归地坚持该结点孩子的属性的单一性。只有这么,在更新垄断才不至于退化到O(n)的混杂度,保证高效率。View Code 1 #include 2 #include 3 #include 4 #inc... 阅读全文
posted @ 2012-07-27 21:48 _雨 阅读(198) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1867这题输出有点麻烦 两个KMP 找出从一个字符串开头到令一个字符串结尾匹配的最大长度 再根据字符串比较函数字典序输出View Code 1 #include 2 #include 3 char c1[100001],c2[200001],c3[100001],c4[200001]; 4 int next[100001]; 5 int kmp(char *a,char *b) 6 { 7 int k1 = strlen(a),k2 = strlen(b),i,j,y; 8 y = -1; ... 阅读全文
posted @ 2012-07-27 17:16 _雨 阅读(227) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4313贪心算法:类似kruskal最小生成树的过程,不过此处将边按权值从大到小排列,每次将边加进来时要判断是否会使两个危险的点连通,是的话这条边就是需要被删除的,否则将它加到树上。还有一种 说是树形DP 不懂这题一直WA 看了秦老师的代码 用的--int64 就改了下数据类型 过了。。。并查集+快排+去掉危险的结点View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 typedef 阅读全文
posted @ 2012-07-27 09:36 _雨 阅读(178) 评论(2) 推荐(0)
上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 71 下一页