上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
摘要: http://poj.org/problem?id=3122题意:将n个圆柱体的不同口味的pie分给m个人,要求每个人分得的pie必须体积相同,且来自于一块pie(即:只分得一种口味的pie),求最多每个人可分得的体积。思路:理解了题意就好做了,二分并注意精度。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const double PI=acos(-1.0); 7 const double eps=1e-8;//设置精度 8 const int N=10008; 9 int main()10 ... 阅读全文
posted @ 2013-10-23 20:44 N_ll 阅读(182) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2031题意:给出n个球的圆心坐标x,y,z, 半径r,若任意两球不相交,则在两球间建桥。问需建桥的最短距离是多少。思路:建图,以两球间相差的距离为权值,然后求最小生成树。 1 #include 2 #include 3 #include 4 const int inf=1 Map[pos][j])38 dis[j] = Map[pos][j];39 }40 }41 }42 void init()43 {44 sum = 0;45 memset(vis,0,size... 阅读全文
posted @ 2013-10-19 21:42 N_ll 阅读(215) 评论(0) 推荐(0)
摘要: 计算几何模板目录:1.计算几何 21.1 注意 21.2几何公式 21.3 多边形 41.4多边形切割 71.5 浮点函数 81.6 面积 141.7球面 151.8三角形 181.9三维几何 211.10 凸包 29水平序 29极角序 30卷包裹法 311.11 网格 331.12 圆 341.13 矢量运算求几何模板 361.14结构体表示几何图形 481.15四城部分几何模板 531.16 一些代码 551.16.1 最小圆覆盖_zju1450 551.16.2 直线旋转_两凸包的最短距离(poj3608)591.16.3 扇形的重心 631.16.4 根据经度纬度求球面距离 641.1 阅读全文
posted @ 2013-10-17 21:24 N_ll 阅读(995) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1408题意:给出a1 a2 ... an b1 b2 ... bn c1 c2 ... cnd1 d2 ... dn 这些点,求这些对应点连线形成的小四边形的最大面积。思路:将所有的交点求出,同已知点一起存入二维矩阵中,枚举每个小四边形,求出其面积,找出最大的即可。 1 #include 2 #include 3 #include 4 const double eps=1e-8;//设置精度 5 #define max1(a1,b1) (double)a1-(double)b1>eps?(double)a1:(double... 阅读全文
posted @ 2013-10-17 21:07 N_ll 阅读(191) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1265题意:起始为(0,0),给出每个点的偏移量,求依次连接这些点形成的多边形边界上格点的个数。思路:先将各个点的坐标求出存入,由pick定理知:面积 =内部格点数目+边上格点数目/2-1;每条边边格点数目 = gcd(x2-x1,y2-y1);内部格点数目 = 面积+1-边界格点数目/2; 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 struct node 7 { 8 int x; 9 int y;10 } point[1... 阅读全文
posted @ 2013-10-15 21:16 N_ll 阅读(196) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1905题意:已知一根线的长度L,受温度影响膨胀后的弧长s = (1+n*c)*L,求膨胀后与膨胀前的最大距离h。思路:二分枚举h,通过推出的公式算出ss,不断改变h的上下界,使ss不断接近s,因为数据为double型,比较时应注意精度问题。修改:(上式应为(r-h)^2) 1 #include 2 #include 3 const double eps=1e-8; 4 int main() 5 { 6 double L,c,n; 7 while(~scanf("%lf%lf%lf",&L,&c,& 阅读全文
posted @ 2013-10-13 11:32 N_ll 阅读(158) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3273题意:将n个数分成连续的m组,使得这些组里的数的最大的和最小,输出这个组的和。思路:根据上下界二分逼近。。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main() 7 { 8 int cost[100010]; 9 int n,m,high = 0,low = 0;10 scanf("%d %d",&n,&m);11 for (int i = 0; i mid)26 {27 ... 阅读全文
posted @ 2013-10-12 22:11 N_ll 阅读(226) 评论(0) 推荐(0)
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1269连着做了三个基本的dfs,终于弄懂了搜索和回溯的过程。此题要求输出所有路径,首先给每一个点编号0~n+m;则存储时只需存储编号,由编号得到坐标的方式: x = num/m, y = num%m; 由坐标得到编号的方式:num = x*m+y;注意:本题坐标从(1,1)开始,编号后的坐标从(0,0)开始。 1 #include 2 #include 3 const int Max = 20; 4 int map[Max][Max],vis[ 阅读全文
posted @ 2013-10-12 16:58 N_ll 阅读(231) 评论(0) 推荐(0)
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1590 1 #include 2 #include 3 int n,m,s_x,s_y,e_x,e_y; 4 char map[15][15]; 5 6 int Deal(char c) 7 { 8 if(c=='R'&&map[s_x][s_y+1]!='#') 9 {10 s_y++;11 if (s_x==e_x&&s_y==e_y)12 return 1;13 ... 阅读全文
posted @ 2013-10-12 16:42 N_ll 阅读(350) 评论(0) 推荐(0)
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2449 1 #include 2 #include 3 const int N=520; 4 int vis[N][N],map[N][N]; 5 int n,m,cnt; 6 void dfs(int x,int y) 7 { 8 if (x==n&&y==m) 9 {10 cnt++;11 return ;12 }13 if (x-1>=1&&map[x-1][y]==0&&!vis[. 阅读全文
posted @ 2013-10-12 16:36 N_ll 阅读(175) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页