自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

carter91620

_______________你知道的,搞ACM都是抽象男

  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 zoj3598----球面三角形内角

公式公式,公式的水题。。。。#include#include#include#includeusing namespace std;#define pi acos(-1.0)#define eps 1e-8struct TPoint{ double al,bk;}p1,p2,p3;double getangle(TPoint a,TPoint b){ double a

2012-04-09 20:31:25 1303

原创 poj1656----二维线段树

二维线段树有树套树和四分法来写,表示小菜只会用树套树,而且在一维的时候lazy标记还是不太会写,,囧大了,,,#include#include#include#includeusing namespace std;#define maxn 105struct SNode{ int l,r; bool flag,color;};struct TNode{ int l,r

2012-04-07 11:07:22 1621 1

原创 poj2761----树状数组

简单的树状数组,复杂度是O(n+m)logn#include#include#includeusing namespace std;#define maxn 100005#define maxm 50005int cal[maxn],ans[maxn],sum[maxm],mid[maxn];int n,m;struct TNode{ int l,r,k,id;}nod[

2012-04-06 20:48:34 1692

原创 poj3321---树状数组

先确定节点关系,使每个节点都用一个线段表示,begin表示起始位置,end表示结束位置在树上搜索确定。然后就是纯树状数组模板了。这道题卡vector最好不用。#include#include#include#includeusing namespace std;#define N 100005struct TNode{ int to,next;}nod[2*N];int

2012-04-03 20:33:50 1952

原创 poj2046---BFS

好吧,表示这道题hash不会用,其实有很多题hash我都不会写= =!是用set判重的,空间占用很大,时间也不少。写了个启发函数,其实也不算什么启发,就是在节点里保存距最终状态还有多少步step,并按step从小到大排序,用优先队列保存,囧,,不料wa了,不知哪里挫了。。。#include#include#include#include#include#include#incl

2012-04-01 18:28:16 1274

原创 poj3740---dancing links

第一道dancing links题,不免有点套模板之嫌。原理理解了,现在就是缺乏熟练度,多多练习,嗯= =可是把这道水题A了,Sudoku的模型还是没有办法建,太笨了我,水货菜鸟一个啊,,,,,,#include#include#include#includeusing namespace std;#define maxn 611#define maxm 6611int

2012-03-29 14:45:40 634

转载 【搜索】Dancing Links——01矩阵

本文转载自 ccy1991911的博客http://blog.sina.com.cn/ccy1991911 本来ccy是决定放弃Dancing Links的,结果第二天吴老师又哈来一堆关于Dancing Links的资料,于是,ccy又被埋了!~    额,到现在为止,ccy就会01矩阵,这里,写一下我学习01矩阵这个问题时操作上的一些东西。

2012-03-28 20:22:04 893

原创 poj3635---BFS

求最短路。搜索题一般难在如何剪枝和判重上,如果这两个都解决的话,搜索题就变成水题。这道题求的是从起始点到终点的最小花费,如果每次都把0~cap的油量都预先存储的话,必定会有很多不必要的操作,会很耗时。如果每次在一个位置只加1V油量,那么就会节省大量的时间开销。#include#include#include#include#include#includeusing namesp

2012-03-28 16:21:23 1497

原创 poj2449---BFS+Astar

寻找第k短路。看到这道题时,很快就想到了思路,但就是实现不了。看了discuss,可以先用dijkstra求出最短路作为估价函数,在astar来实现求出第k短路,而astar最惯常做法是用优先队列保存节点。用TPoint来保存astar里的节点,其中to是指向的位置,dis代表当前节点中已经过的距离,all是到目标的总距离。#include#include#include#inclu

2012-03-28 14:50:36 924

原创 poj1379---计算几何

//模拟退火算法//1、随机选取一个足够大的温度T作为开始//2、随机选取P个起始点,作为可行解//3、分别更新这P个可行解//4、减小温度T,直到终止条件//5、转到1#include#include#include#include#include#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))

2012-03-19 16:58:37 734

原创 poj1673---计算几何

//简单题,按题目要求求就行。#include#include#include#include#define eps 1e-8#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x)#defi

2012-03-19 16:56:46 453

原创 poj3384---计算几何

//半平面交,然后求凸包对重点#include#include#include#include#define eps 1e-8#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x)#defi

2012-03-19 16:52:24 841

原创 poj1873---计算几何

//从1到n枚举,求砍到最少的树//位压缩,之开始用的IDA*一直WA,遂换成位压缩果断AC#include#include#include#include#define eps 1e-8#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y

2012-03-19 16:48:09 910

原创 poj1408---计算几何

//对n*n个四边形,求面积最大的那个的面积#include#include#include#include#define eps 1e-8#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x

2012-03-19 16:44:35 507

原创 poj1039---计算几何

//枚举第i和第j个转折点,求最大距离#include#include#include#include#define eps 1e-8#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x)#

2012-03-19 16:41:25 553

原创 poj1151--计算几何+离散化

//把相交的矩形分成若干个小矩形//vis[i][j]表示由标号为xi和yj的小矩形是不是原来矩形的一部分#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) 1.0*(

2012-03-19 16:34:35 583

原创 poj1106---计算几何

//求在可以旋转的给定圆心和半径的半圆中最多点的个数#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) 1.0*(b.x-a.x)*(c.y-a.y)-1.0*(b.y-a

2012-03-19 16:31:18 675

原创 poj1113---计算几何

//求最少的边长把城池围住//其实就是求凸包的周长+圆周长#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) 1.0*(b.x-a.x)*(c.y-a.y)-1.0

2012-03-19 16:29:37 507

原创 poj3335---计算几何

//半平面交,就是求有没有内核,有输出“YES”,否则“NO”//这里都是逆时针方向#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) 1.0*(b.x-a.x)*(c

2012-03-19 16:27:16 1050

原创 poj1696---计算几何

//运用叉积判断是否是逆时针,因为同一直线上也行,所以有n个植物就可以吃掉n个植物#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) 1.0*(b.x-a.x)*(c.y-

2012-03-19 16:25:12 452

原创 poj1654---计算几何

//无比之水,按照题目要求做就行,求面积时,把面积之和后,在除2,避免精度缺失。#include#include#include#include#include#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y

2012-03-19 16:23:00 468

原创 poj1556---计算几何+最短路

//这道题就是麻烦了点,其他都很简单,细节问题。#include#include#include#includeusing namespace std;#define PR 1e-8#define N 10005double edge[N][N];double dis[N];bool vis[N];struct TPoint{ double x,y; TPoint

2012-03-19 16:20:19 458

原创 poj1375---计算几何

//分别计算每个圆在floor上的阴影部分,然后贪心一下就好了//在求切线时,是把圆点逆时针旋转angle和2*pi-angle度#include#include#include#include#include#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c)

2012-03-19 16:18:07 773

原创 poj1031---计算几何

//由题目给出的公式,积分//其实我也是看网上的结论这题#include#include#include#include#include#define dist(a,b) sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))#define cross(a,b,c) (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x

2012-03-19 16:13:53 1057

原创 抽象男的情商很低

作为一个搞ACM的抽象男,我深切的感受到抽象男的情商都很低。作为一个抽象男的代表:长得抽象,思想抽象,穿得抽象,走路抽象,坐姿抽象,吃饭抽象,喝水抽象,打字抽象,说话抽象,处处抽象的我,面对朵朵学姐学妹显得那么的手足无措。面对抽象男的孤独寂寞单身的大学生活,我无时无刻不在企图AC。但不是因为资本太低,就是粗心大意,不着女孩子注意喜欢。我满怀着热情视试图去打破僵局,却不料换来的是CE、RE。我尝

2012-03-19 16:10:44 1547

原创 hdu2514---DFS

//简单的DFS,题目要求都给你了,照着写就好了#include#include#include#include#define N 11#define M 210using namespace std;int n,m,t,sumf;int map[N],ans[N];bool vis[N][N],used[N];void init(){ memset(vis,0,siz

2012-03-19 13:34:51 422

原创 hdu1426---DFS

//把‘?’提取出来,搜索时检查,这是很暴力的方法,小菜仅会如此;听说还有更高的做法,以后研究了。#include#include#include#include#define N 11#define M 210using namespace std;int n,m,t,sumf;int map[N][N];char str[2];struct TNode{ int x

2012-03-19 13:31:11 459

原创 hdu1813---IDA*

//首先把每个在能走点走出去的最小步数求出并保存//在进行dfs时,求h()时,即是求当前存在的节点走出去的最小步数中最大者//其他地方和IDA*题一样处理即可,此题就是多了个预处理,首先在记忆化搜索一遍,然后在IDA*#include#include#include#include#define inf 12345678using namespace std;int n,m,

2012-03-12 20:45:15 592

原创 hdu1560---IDA*

//因为每个串的长度不超过5,最多8个串,所以最短公共母串最长为40,所以IDA*搜索不超过40次#include#include#includeusing namespace std;int n,m,t;char str[9][6],dna[5]= {'A','C','G','T'};int len[9],tp[9];bool dfs(int ps[],int ds,int d

2012-03-12 14:41:57 720

原创 hdu2918---IDA*

//不用剪枝,直接的#include#include#includeusing namespace std;int n,m,t;char str[12];int ans[10];bool fit(int mid[]){ for(int i=1;i<10;i++) { if(mid[i]!=i) return 0; } retu

2012-03-12 14:29:15 519

原创 poj1226---字符串

//很纯很纯的水题//从长度len---1依次枚举,数据相当弱,就这样过了#include#include#includeusing namespace std;char str[110][110],st[110],en[110];int n,m,t;bool isok(char *ch,char *cg,int len,int id){ int j,k,l;

2012-03-12 10:06:49 310

原创 hdu2234---IDA*

//又是简单的IDA*,注意是每一行或每一列都相等,不是某一行或某一列都相等,这个地方WA了几次#include#include#includeusing namespace std;int n,m,t;int map[17];int count(int mid[],int a,int b,int c,int d){ int cnt[5]={0,0,0,0,0};

2012-03-11 22:20:47 797

原创 poj2286---IDA*

//很纯很纯的IDA*,在dfs时,要判断当前剩下的深度和中间出现个数最大值做比较//函数fit---目标状态是否已经存在//函数count---统计中间8个位置1、2、3出现的个数,并返回最大值//函数isok---是否之前旋转相冲突//函数swap---旋转#include #include#includeusing namespace std;int ans[25

2012-03-10 23:16:58 574

原创 hdu2452---记忆化搜索

//一颗树,边是单向的,每个节点有一定的权值,要你从根节点走到叶子节点,走到第偶数节点时,使后面的权值和最小;走到第奇数节点时,使后面的权值和最大//边链表存储,并查集查找根节点//用val[i][0]表示第i个节点是偶数节点的值和val[i][1]表示第i个节点是奇数节点的值//递归的计算,因为节点很多,所以要记忆化搜索#include #include#includeus

2012-03-10 16:41:46 548

原创 hdu3779---记忆化搜索

//两列火车入站,重新排列的车厢符不符合要求//记忆化搜索,ans[i][j]记录的是第一列火车的第i节和第二列火车的第j列在组合后的序列里找不找的到//如果找的到就标记为1,因为是从前到后搜索,所以在ans[n][m]=1时,表示符合#include #include#includeusing namespace std;#define N 1005bool ans[N][

2012-03-10 14:51:41 705

原创 poj1961---KMP

//和poj2406同样处理//一个失败函数就行//因为s=a^n,所以如果i%(i-f[i])==0,那么其a的长度就是i-f[i]了#include #include#include#includeusing namespace std;#define N 1000005int n,m,t,p,end;char str[N];int f[N];int main(){

2012-03-09 23:44:55 493

原创 poj2752---KMP

//一道简单的KMP模板题//求取next函数后就很明确了//next[i]表示在比较时,i与第next[i]个字符作比较#include #include#includeusing namespace std;#define N 400005char ans[N];int next[N],cvs[N];int n,m,t;void getnext(){ int

2012-03-09 23:31:51 3409

原创 poj2828---线段树

//题目大意是,有n个人按次序插队,第i个人会插在第f[i]个位置之后,当然随着第i+1....n个人的插入,第i个人的位置也会发生改变//那么我们可以从后往前插,第i个插在第f[i]位置之后,相当于第i个要在其插入的位置之前留f[i]个空位#include #include#include#includeusing namespace std;#define N 20000

2012-03-07 14:43:05 403

原创 poj2528---线段树

//成段更新,不必更新到底//id记录的是节点被编号为id人的海报遮住//墙的长度很长,在建树时,应以海报贴的最右边为准,不然会MLE#include #include#include#includeusing namespace std;#define N 10005int n,m,t,sum,p;struct TNode{ int l,r,id;} n

2012-03-07 14:36:51 301

原创 poj3468---线段树

//线段树成段更新//和其他题相似,注意在更新时值可以超出int范围,在乘的时候,应乘1ll强制类型转换#include #include#include#includeusing namespace std;#define N 100005typedef __int64 i64;int n,m,t;i64 sum;int ans[N];char str[2];s

2012-03-07 14:32:18 355

deiphi7做的通讯录

初学delphi做的试用品。其中运用了TTreeView、TADOConnection、TADQuery、TADOGrid、TMainMenu、TImageList等等控件。适合初学者借鉴只用,大家会想学习才能进步。

2012-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除