上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 凸包问题poj 1113http://poj.org/problem?id=1113题意就是给你一些点,然后让你求凸包并求出这个凸包的周长,由于题目中有要求,所以求出周长后还要再加上一个以输入 L 为半径的园的周长,才是所求的答案View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 #include <stdlib.h> 6 #include <math.h> 7 #define 阅读全文
posted @ 2012-05-05 21:31 AC_Girl 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目http://poj.org/problem?id=1584题意:判断一个多边形是否为凸多边形,如果不是则输出”HOLE IS ILL-FORMED“,如果是则继续判断给定的一个圆是否在该凸多边形内,如果不在输出”PEG WILL NOT FIT“,否则输出”PEG WILL FIT“;思路:用一维数组保存给的顶点,增加两个点构成一个使得数组从0 到n + 1 构成一个环。由于给点的点是按顺时针或逆时针的,所以先算出point[0],point[1],point[2]三个点构成的两条边的叉积,作为判断标准。如果一个多边形为凸变形,那么按照一个方向枚举每两条边时叉积的符号是相同的。然后判断两 阅读全文
posted @ 2012-05-04 19:57 AC_Girl 阅读(368) 评论(2) 推荐(0) 编辑
摘要: 题目http://poj.org/problem?id=1408题意:在x轴,x = 1,y轴,y = 1.这四条线段上给出一些点,然后把x轴上的点和x = 1 上的点一一对应连接,把y轴上的点和y = 1上的点也一一对应连接,在这些连接线组成的四边形(除了定点外,不含其它的点)中,找出一个面积最大的思路:求出所有的交点,然后求每一个四边形面积,找出最大输出即可,纠结了很久都不出结果,就是因为一个点保存的时候x写成了y,真杯具。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <math 阅读全文
posted @ 2012-05-03 23:20 AC_Girl 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 昨晚看了一点点的数论,是一个直线上的点的例题,正好用到了欧几里德算法。于是就网搜了一下,做一些笔记,以后好留着自己看。欧几里德算法其实就是求两个整数的最大公约数的算法,gcd函数应该都知道,gcd(a,b)就是求a,b的最大公约数。根据最大公约数的性质:gcd(a,b) = gcd(b,a) = gcd(b,a%b);也就是我们熟悉的辗转相除法,辗转相除的代码View Code //非递归实现int gcd(int a,int b){if(a < b) swap(a,b);while(b){int temp = b;b = a % b;a = t;}return a;}//递归实现int 阅读全文
posted @ 2012-04-12 13:42 AC_Girl 阅读(316) 评论(3) 推荐(1) 编辑
摘要: http://poj.org/problem?id=3264 是一道RMQ 算法的裸题,数据量很大,用 cin 估计会超的。提供一个百度里面的讲解RMQ 的链接,感觉讲的还是很易懂的http://qa4862741.blog.163.com/blog/static/56587549201162573625151/View Code #include<stdio.h>#include<cstdio>#include<cmath>#include<iostream>using namespace std;#define N 50001int mi[N 阅读全文
posted @ 2012-03-25 13:49 AC_Girl 阅读(168) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1001题目就是 大整数乘法的问题,只不过给的这个数是一个小数,但好在这是一个求幂的,即使有小数,只要把小数的位置标记一下,把原有的字符串转换为整数,等输出时在真确位置输出小数点即可本来想拿这道题目再练习一下乘法呢,真没想到自己这么的弱,不是忘了这就是忘了那,考虑的一点都不周全,脑子进水了View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 1000 阅读全文
posted @ 2012-03-21 19:58 AC_Girl 阅读(282) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2251题目就是给你一个三维的矩阵,让你从‘S’ 位置找到 ‘E’ 所走的步数,其实就是bfs类型的水题,只不过三维的可能感觉起来有点麻烦。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<queue> 5 using namespace std; 6 #define inf 9999999 7 #define N 35 8 int move[6][3] = { {0,0,-1},{0,0,1},{ 阅读全文
posted @ 2012-03-20 21:29 AC_Girl 阅读(192) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1321 题目没什么好说的,算是dfs里面的一道水题。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 10 6 char str[N][N]; 7 int r[N],c[N]; // r 用来标记该行已经有旗子放了,c用来标记该列有棋子放上了 8 int sum,num; 9 int n,k;10 void dfs(int x)11 {12 int i,j;13 阅读全文
posted @ 2012-03-20 20:30 AC_Girl 阅读(152) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/web/problem.php?action=showproblem&problemid=2218好像也有点像模拟,当然这是看的解题报告。深刻感觉到string功能的强大,用起来真的很方便题目就是把给定的那个数转换成20进制的数来确定每一位的数字,因为从 0 ~ 100 就有20个不带e的 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 string digits[] = {"00", "02" 阅读全文
posted @ 2012-03-18 15:40 AC_Girl 阅读(167) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/web/problem.php?action=showproblem&problemid=2216算是模拟题吧,就是给你几个罗马数字表示的数,求他们的和然后再用罗马数字表示输出罗马数字表示的时候有些规则注意就是了。其实也是很简单的思路:先把 1~10,10~100,100~1000 这27个整数用罗马表示写到三个字符数组里,然后把给定的罗马数转换为我们的十进制数,相加后,再把这些数转换成罗马数输出就行了 1 #include<stdio.h> 2 #include<string.h> 3 #include<io 阅读全文
posted @ 2012-03-18 15:26 AC_Girl 阅读(166) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页