2013年3月2日
摘要: 题目大意:给出汽车当前的街道宽度为x,要转弯进入的街道宽度为y,给出汽车的长度和宽度,为能否通过 解题思路:如果给我一道三分的题目,我还真的不知道往哪里去想。看到这个大牛的博客才知道思路是怎样的http://hi.baidu.com/novosbirsk/item/b52cd716a2068d463a176e07车转弯的时候车有段与地面的夹角角度是从0度变化到90度的。也就是转弯的时候需要一个最大的宽度才能过去。否则就卡在 那里了。这个宽度PH是先增加后减少的。是个凸型函数,因此是三分求的极值。直线y的斜率为tan(θ),还经过点(0,Lsin(θ)+D/cos(θ))因此得到y的直线方程。y 阅读全文
posted @ 2013-03-02 15:14 crying_Dream 阅读(484) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2298题目大意:Bob在(0,0)点想射在(x,y)点的水果,初始的速度为v(已知),g=9.8,求最小的角度射到苹果.解题思路:---直接推到物理公式:将速度的分解为x方向和y方向,然后列出式子1>x=vcosθ*t----变形--->t=x/vcosθ2>y=vsinθ*t-g*t*t/2将t的函数带入2>式中得y=tanθ*x-g*x*x/(2*v*v*cos^2θ)---3式1/cos^2θ=(sin^2θ+cos^2θ)/cos^2θ=1+tan^2θ----带入3式中,得: 阅读全文
posted @ 2013-03-02 11:15 crying_Dream 阅读(663) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366题目大意:求人从左向右走动时,影子的长度L的最大值解题思路:当人在最左端的时候影子的长度全部投在地上,渐渐向右走影子开始投入到墙上。当人走到最右端影子全部在墙上。函数式先增加后减小的,满足三分法求解;doublecal(Typea){/*根据题目的意思计算出来的公式*/returnD-x+H-(H-h)*D/x;}推导过程如下:(运用2次相似三角形)1>k/(D+k)=z/H;--->k=Dz/(H-z)2>k/(y+k)=z/h;--->k=z 阅读全文
posted @ 2013-03-02 10:06 crying_Dream 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 综合于大牛们的总结:三分算法解决凸形或者凹形函数的极值;二分解决具有单调性的函数的极值;mid=(Left+Right)/2midmid=(mid+Right)/2;如果mid靠近极值点,则Right=midmid;否则(即midmid靠近极值点),则Left=mid;程序模版如下:doublecal(Typea){/*根据题目的意思计算*/}voidsolve(){doubleLeft,Right;doublemid,midmid;doublemid_value,midmid_value;Left=MIN;Right=MAX;while(Left+EPS<=Right){mid=(Le 阅读全文
posted @ 2013-03-02 09:58 crying_Dream 阅读(3498) 评论(1) 推荐(1) 编辑
摘要: /*@@2013-02-0623:07*/题目大意:题目给出商品数量不超过5,用5元组表示商品i的购买数量。优惠政策也不超过99因此用f[a1][a2][a3][a4][a5]表示第i种商品买ai的数量的最小费用用s[i][j]表示第i种政策j件物品的购买数量,s[i][0]表示政策i的优惠价格重新处理商品的编号为输入的顺序。用map<int,int>实现状态转移方程:f[a1][a2][a3][a4][a5]=min{f[a1-s[i][1]][a2-s[i][2]][a3-s[i][3]][a4-s[i][4]][a5-s[i][5]]+s[i][0]};代码如下:View C 阅读全文
posted @ 2013-03-02 09:53 crying_Dream 阅读(254) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1322题目大意:c种颜色的巧克力,拿出n块,桌子上有m块的概率是多少。如果桌子上出现相同颜色的巧克力那么将2块都吃掉分析:1》台上的巧克力数和当前拿出的巧克力的颜色有关系,设dp[i][j]表示拿出第i块的时候台上有j块巧克力的概率。巧克力i的颜色有两种情况:与桌上的巧克力颜色相同或者是与桌上的巧克力颜色不同状态转移方程为:dp[i][j]=dp[i-1][j-1]*p1+dp[i-1][j+2]*p2;p1=(c-j+1)/c,p2=(j+1)/c;2》状态i仅和i-1有关,可以进行空间上的优化,用滚动数组实现3》当拿出2*n+1奇数次巧 阅读全文
posted @ 2013-03-02 09:51 crying_Dream 阅读(205) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1189设经过位置(i,j)的小球个数为P(i,j),那么落入格子m的小球个数为p(n+1,m),那么概率就是p(n+1,m)/2^n。假设位置(i,j)有铁钉,那么各有p(i,j)/2个小球落入位置(i+1,j)和位置(i+1,j+1);否则球全部落入(i+2,j+1)的位置。代码如下:View Code /*POJ 1189钉子和球*/ #include<stdio.h>#include<string.h>#include<iostream>using namespace std;long long p 阅读全文
posted @ 2013-03-02 09:49 crying_Dream 阅读(233) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=11791》给出的样例,取得的最优值为去掉2边后结果为:4*2*5-7=33。2》对于加法两个最优的相加肯定是最优的,但是对于乘法:求最大值:正数X正数两个都是最大的结果最大正数X负数正数最小,负数最大结果最大负数X负数两个都是最小值结果最大求最小值:正数X正数两个都是最小值结果最小正数X负数正数最大,负数最小结果最小负数X负数两个都最大结果最小要保存子问题的最大值和最小值,还具有点最优子结构,可以用动态规划求解。fmin(i,L)表示以i为首,顺时针长度为L的链的计算结果最小值。fmax(i,L)表示以i为首,顺时针长度为L的链的计算结果最 阅读全文
posted @ 2013-03-02 09:45 crying_Dream 阅读(370) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1338b最小的丑数是1,以后的丑数为在以前的基础上进行*2,*3,*5....那么设第i个丑数为F[i]=min{F[n2]*2,F[n3]*3,F[n5]*5},其中n2,n3,n5....表示进行衍生丑数的下标。暴力的打出1500个丑数要很久很久....才出来结果....代码如下:View Code /* POJ 1338丑数*/#include<stdio.h>#include<iostream>using namespace std;long long f[1505];long long minx(long 阅读全文
posted @ 2013-03-02 09:41 crying_Dream 阅读(169) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=11911>根据公式化简:其中后者是一个已知数。求均方差的最小值就是求出个个棋盘内各数值的平方和最小值。2>棋盘分割分四种情况:竖切(左不动),竖切(右不动),横切(上不动),横切(下不动);3>状态转移方程:f(i,x1,y1,x2,y2)表示以(x1,y1),(x2,y2)为四边形对角线的棋盘切割成i块的各块值总平方的最小值;D(x1,y1,x2,y2)表示棋盘的总分_____________|f(i-1,x1,a+1,x2,y2)+D(x1,y1,x2,a)[横切(上不动)]|f(i-1,x1,y1,x2,a)+D(x 阅读全文
posted @ 2013-03-02 09:40 crying_Dream 阅读(202) 评论(0) 推荐(0) 编辑