• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tmeteorj
Nothing is so big that it is impossible to get over, and hurt only serves to make us stronger. 没有什么事是大到无法战胜的,痛苦也只会让我们变得更加坚强。
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页

2012年9月25日

POJ 2955
摘要: 题意:给一个括号串,求最大匹配。题解:记忆化搜索,dp[i][j]为[i,j]的最大匹配,dp[i][j]=max(dp[i+1][j-1]+corr(s[i],s[j]),dp[i][k]+dp[k+1][j]);View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int dp[105][105]; 6 char s[105]; 7 int corr(char a,char b) 8 { 9 if((a=='( 阅读全文
posted @ 2012-09-25 15:04 tmeteorj 阅读(325) 评论(0) 推荐(0)
 
 

2012年9月24日

POJ 1686
摘要: 题意:给出两个含未知数的表达式,判断其是否相等。题解:任意给未知数赋值,看起结果是否相同。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cctype> 5 using namespace std; 6 const int N=1000; 7 char op[8]= {'+','-','*','/','(',')','\0' 阅读全文
posted @ 2012-09-24 22:29 tmeteorj 阅读(535) 评论(0) 推荐(0)
 
POJ 3322
摘要: 题意:在r*c的矩形方格地图中,有钢地板和易碎地板,分别以'.'和'E'代替。有个1*1*2的长方体,在这上面滚动,要使它最后立在目标位置上(就是只占一格且在目标上),长方体初始位置用'X'表示,目标用'O'表示。题解:bfs,记录长方体左上角的点的位置以及它的摆放位置(立着:0,横躺着:1,竖躺着:2),然后就可以用mark[505][505][3]的bool数组记录是否走过某点了。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include< 阅读全文
posted @ 2012-09-24 20:01 tmeteorj 阅读(394) 评论(0) 推荐(0)
 
POJ 2812
摘要: 题意:给一个多边形柱体的底边形状和体积,求它的高。题解:叉积求面积,再用体积除以面积。View Code 1 #include<cstdlib> 2 #include<cmath> 3 #include<cstdio> 4 #include<algorithm> 5 #define max(a,b) (((a)>(b))?(a):(b)) 6 #define min(a,b) (((a)>(b))?(b):(a)) 7 #define sign(x) ((x)>eps?1:((x)<-eps?(-1):(0))) //符号 阅读全文
posted @ 2012-09-24 19:04 tmeteorj 阅读(255) 评论(0) 推荐(0)
 
POJ 1390
摘要: 题意:给定n个不同颜色的盒子,连续的相同颜色的k个盒子可以拿走,权值为k*k,求把所有盒子拿完的最大权值。题解:记忆化搜索,dp[ll][rr][kk]代表在区间[ll,rr]取盒子,其中ll前面有k个盒子颜色和rr一样,可以重叠在rr上消去。 那么,dp[ll][rr][kk]=max(dp[ll][i][kk+len[rr]]+dp[i+1,rr-1][0],dp[ll][rr-1][0]+pow(len[rr]+kk)),i是所有位于[ll,rr-1]区间且与rr颜色相同的盒子;View Code 1 #include<cstdio> 2 #include<cstrin 阅读全文
posted @ 2012-09-24 18:55 tmeteorj 阅读(626) 评论(0) 推荐(0)
 
POJ 1155
摘要: 题意:给定一棵树,树的边带负权,树的叶子带正权,求一棵子树,要求涵盖尽可能多的叶子,同时保证总权值不为负题解:树形DP,dp[i][j]代表以i为根的子树含有j个叶子结点时最大权值,对每一个i的子树,dp[i][j]=max(dp[i][j],dp[i][j-k]+dp[t][k]-c)View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<queue> 5 using namespace std; 6 const int N=3005,i 阅读全文
posted @ 2012-09-24 18:17 tmeteorj 阅读(349) 评论(0) 推荐(0)
 
POJ 1475
摘要: 题意:推箱子,要求箱子移动步骤最小。题解:双重bfs,先对箱子bfs,然后判断这种bfs是否可达(对人bfs)。题解本来很简单,但是这题数据SPJ方式各种坑,已经说不上坑了,就是错的。网上各种AC代码也是过不了一些数据,例如:5 5.......###....T#B####S###遍历的时候还要限制顺序才能A,好TM无语。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<string> 5 #include<cctype> 阅读全文
posted @ 2012-09-24 10:57 tmeteorj 阅读(599) 评论(0) 推荐(0)
 
 

2012年9月22日

POJ 2556
摘要: 题意:一个点从(300,420)走到(310,420),方向向右,然后遇到A向右转90度再直走10,反之,向左转90度再直走10.题解:同上View Code 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int dr[][2]={10,0,0,-10,-10,0,0,10}; 5 int main() 6 { 7 char s[250]; 8 while(gets(s)) 9 {10 int x=310,y=420,d=0;11 printf("300 ... 阅读全文
posted @ 2012-09-22 20:04 tmeteorj 阅读(162) 评论(0) 推荐(0)
 
POJ 3705
摘要: 题意:通过复制粘贴将正序序列变成逆序序列,要求步骤最少。题解:分奇偶讨论,若是奇数,则反复的将最大的那数前面的偶数个数的中间两个挪到后面相应位置,如n=71 2 3 4 5 6 71 2 5 6 7 3 41 6 7 3 2 5 47 3 2 1 6 5 4这样做可以使得每次移动都形成两个降序序列。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int main() 6 { 7 int n; 8 while(scan 阅读全文
posted @ 2012-09-22 11:51 tmeteorj 阅读(235) 评论(0) 推荐(0)
 
 

2012年9月21日

POJ 3225
摘要: 题意:定义对集合的交、并、差、异或,求空集经过一系列操作后的结果。题解:将原点集每一个点乘以2,形成一个新的点集,其中偶数点都对应着原来的点,奇数点对应着不包括它左右两个点的开区间,即2k+1==>(k,k+1),于是区间上所有点都能用整点表示,线段树可求解,对于每一个操作区间,无论开闭,都对应这线段树上的一段线段。1、并运算[a,b],就是将[a,b]赋值为1.(a,b均为对应之后的点)2、交运算[a,b],将除了[a,b]区间以外的线段清0.3、S-[a,b],将[a,b]区间清0.4、[a,b]-S,将[a,b]区间以外线段清0,并且将[a,b]线段所代表区域取反.5、异或运算,上 阅读全文
posted @ 2012-09-21 21:26 tmeteorj 阅读(837) 评论(0) 推荐(0)
 
 
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3