枚举
捡石子的小孩
这个作者很懒,什么都没留下…
展开
-
poj1753 Flip Game 枚举+BFS
#include#include#include#includeusing namespace std;struct st{ int cur;//当前格局 int choose;//已选了哪几个格子 int step;//步数}w,temp;const int res=((1<<16)-1);int dirt[4][2]={0,1,0,-1,1,0原创 2012-10-11 19:30:18 · 768 阅读 · 0 评论 -
poj 2965 The Pilots Brothers' refrigerator
此题我用的是枚举+BFS,虽然时间有点慢(G++ 500ms),但自己还是挺满意的,以后再慢慢改进吧,下面贴代码,供自己以后查看#include#include#include#includeusing namespace std;struct st{ int cur,choose,step;}w,tmp;const int maxn=(1<<16);i原创 2012-10-12 22:10:25 · 632 阅读 · 0 评论 -
hdu2899 二分枚举
这题首先要求出原函数的导函数,注意x,y的范围后,发现在导数为0的地方原函数取得最小值。所以本题要解决的就是求出导数为0的那个点。#include#include#includeusing namespace std;const double eps=1e-9;double f(double x,double y)//原函数的导函数{ double X[7]={1};原创 2013-01-18 15:39:36 · 882 阅读 · 0 评论 -
hdu1969 Pie 二分
这道题刚开始没想到要用枚举,一直以为是贪心。后来经指纹兄提醒,才恍然大悟,看来做题还是不够啊。。思路:对所有可能的情况二分,但此处有个地方需要注意(调了半天才被我发现的),因为蛋糕能分成的份数是一个整数,所以在二分查找中不能通过判等直接退出循环。即使当前得到了满足题意的蛋糕数,也要尝试让蛋糕的面积继续增大,直到不满足循环条件为止。#include#include#includeus原创 2013-01-18 21:37:53 · 1049 阅读 · 0 评论 -
hdu2199 二分枚举
这题注意精度就行,其时就是一个简单的二分枚举。#include#include#includeusing namespace std;const double eps=1e-4;double f(double x){ double X[4]={x}; for(int i=1;i<4;i++) X[i]=x*X[i-1]; return 8原创 2013-01-18 15:08:22 · 970 阅读 · 0 评论 -
hdu2298 Toxophily 三分+二分
首先这题是一道物理题,需要我们根据题意抽象一个函数出来。对物体的运动作分解后,可以得到:f(t)=x*tan(t)-g*x*x/(v*cos(t))^2/2,其中t表示v与x轴正向的夹角(弧度),f(t)表示物体的运动轨迹与直线x0=x的交点纵坐标。分析后可以得到该函数在区间(0,π/2)上先增后减,所以我们可以在该区间上三分,求出使函数取得极大值的角度t0。若f(t0)#includ原创 2013-01-19 01:38:07 · 1272 阅读 · 0 评论 -
hdu2438 Turn the corner 三分
思路:显然为了让车子能顺利通过弯道,我们应该使车子擦着左边那个墙角走,在转弯的过程中,车子的右下端(点p)露在最外面,所以我们只需判断点p能否顺利通过就行。下面就是数学知识了,我们可以建立p的横坐标关于θ的函数,这个画个图可以算出来,现在给出其函数表达式:f(θ)=l*cos(θ)-(x*cos(θ)-d)/sin(θ).f(θ)在区间(0,π/2)上先增后减,所以我们需要求出f(θ)的最大值,若原创 2013-01-19 10:36:14 · 1491 阅读 · 1 评论