随笔分类 -  poj

PUK poj
poj1190
摘要:#include<stdio.h>#include<math.h>int result=0x7fffffff;//保存最小值int N,M;void search(int lev,int m,int curS,int r,int h)//lev剩余的体积 m当前层数 curS 当前总表面积 r半径 h 高度{ if(!m) //当m==0&&lev==0时,说明方案成立,否则说明到达最高层,直接返回 { if(!lev&&curS<result) result=curS; return ; } if(curS>result)/ 阅读全文
posted @ 2012-07-09 17:22 阑珊寻梦 阅读(180) 评论(0) 推荐(0)
poj1011(DFS)
摘要:164K16MSC++2578B解题思路:一个棍一个棍的组合,组合好第i根,再组合第i+1根,注意要剪好枝。若前面的一个组合未能成功,当该组合再次出现时也不能成功。#include<stdio.h>int flag=0;//标志棍组合的当前顺序int flagall=0;//标志是否成立int a[65],b[65],max=0;//a保存当前输入数,b标志是否使用int main(){ int n,i; void search(int m,int k,int n); int findmax(int n); int sum(int n); void sort(int n); sca 阅读全文
posted @ 2012-07-09 11:17 阑珊寻梦 阅读(158) 评论(0) 推荐(0)
poj1064
摘要:二分查找#include<stdio.h>int a[10000];int ans;void search(int m,int n,int l,int k){if(m>n)return ;else {int sum=0,mid=(m+n)/2;for(int i=0;i<l;i++)sum+=a[i]/mid;if(sum>=k){ans=mid;search(mid+1,n,l,k);}elsesearch(m,mid-1,l,k);}}int main(){int n,k;while(scanf("%d %d",&n,&k) 阅读全文
posted @ 2012-07-08 11:57 阑珊寻梦 阅读(157) 评论(0) 推荐(0)
poj1328题
摘要:196K0MSC++1352B先求出以每个island为圆心时,与x轴的交点,得到覆盖该island的雷达坐标的变化范围,然后从左向右,按贪心策略,求各个变化范围的最多交集(即若相邻几个island在x轴有交集,则在此处安装一个雷达),最后所求交集的个数即为minimal number of radar installations#include<stdio.h>#include<math.h>int a[1000],b[1000];int sort(int m,int n){int start=m+1,end=n;int temp;while(1){while(end 阅读全文
posted @ 2012-07-08 10:34 阑珊寻梦 阅读(146) 评论(0) 推荐(0)
POJ 1088解题报告
摘要: 阅读全文
posted @ 2012-07-06 20:43 阑珊寻梦 阅读(368) 评论(0) 推荐(0)
北大poj1018题解题报告
摘要://我是莱鸟,多多交流//380k//94ms题目的意思是:每种装备可由多个生产商提供,从每一种装备中选择一个厂家的设备,使得所选的总的各种装备中的最小带宽B与他们的价格之和P的比值B/P达到最大。解题思路:准备工作:在输入时,统计所有装备中的最小值min,和每种装备中的最大值max,然后从最大值中选出最小的一个Max。然后:从最小值min到Max之间枚举所有的可能的结果,并输出最大的一个值1、对每种装备进行按p的大小进行升序快排。以便之后的查找工作。2、保存min到Max之间的所有的的B的节点及他们所在行列数,便于之后查询。3、对min到Max之间的B[i]进行枚举,并进行更新。4、输出最大 阅读全文
posted @ 2012-07-05 22:46 阑珊寻梦 阅读(1276) 评论(0) 推荐(0)