05 2012 档案

摘要:1,看问题一定要深入实质性的东西2,计算几何题注意角度的计算,有时能减少不少计算量3,做题时一定要注意大量题型的训练,能熟练运用各种题型的分析方法、技巧找到解题方法4,注意解题方法的总结归纳5,区间顺序的选择三层循环的DP6,选择满足条件的指定对象,注意条件的预处理,减少循环的次数7,对多个对象的元素进行选取,视图化用搜索8,对无法表示的图论map,可以考虑并查集、矩阵压缩9,回溯和深搜区别:前者是求有多少种情况,后者是能否出现这种情况10,二分、三分一般是用于求于求达到一定要求的未知数,可以是多个,一定要选出一个进行分,其他的未知数有其计算得出,用要求进行方向判断,小还是大了11,区间型的D 阅读全文
posted @ 2012-05-26 22:26 shijiwomen 阅读(163) 评论(0) 推荐(0)
摘要:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;int a[1005][1005],vis[1005][1005];int dic[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int n,m;struct node{ int x,y,dir,corner;};node start,end;void bfs(){ queue<node> q; int i; node pre,cur; 阅读全文
posted @ 2012-05-24 21:41 shijiwomen 阅读(184) 评论(0) 推荐(0)
摘要:充分利用下标的资源,tree[]表示节点含有的数据个数#include <stdio.h>const int MAXN=262144;int tree[MAXN<<1];int pos;void build(int l,int r,int rt){ tree[rt]=r-l+1;//表示节点含有的数据个数 if(r==l) return ; int m=(r+l)/2; build(l,m,rt*2); build(m+1,r,rt*2+1);}void update(int p,int l,int r,int rt){ tree[rt]--;//更新节点的数的个数 i 阅读全文
posted @ 2012-05-08 15:13 shijiwomen 阅读(317) 评论(1) 推荐(0)