![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ刷题相关
文章平均质量分 82
zn505119020
这个作者很懒,什么都没留下…
展开
-
初始博弈 hdu 1846 Brave Game
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1846Brave GameTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5612 Accepted Submission(s):原创 2014-06-26 15:05:58 · 408 阅读 · 0 评论 -
并查集 删除节点 求集合的个数<set> hdu 2473
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2473Junk-Mail FilterTime Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5343 Accepted Submiss原创 2014-06-26 15:06:19 · 351 阅读 · 0 评论 -
二维凸包(模板) hdu 1348 求凸包的周长
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1348凸包模板: const int N =1010;const double PI = 3.1415927;double EPS=1e-10;// 考虑误差的加法运算double add(double a,double b){ if(fabs(a+b)re原创 2014-06-26 15:07:00 · 344 阅读 · 0 评论 -
凸包的变形 基点每次都在变化 poj 1696 Space Ant
题目来源:http://poj.org/problem?id=1696分析:题意:一只蚂蚁,不会向右转,现在给出平面上很多个点,求解一种走法,能使得蚂蚁能经过的点最多,每个顶点该蚂蚁只能经过一次,且所行走的路线不能发生交叉.思路:先将所有的点按纵坐标从小到大进行排序,选择第一个点然后对剩下的点进行按极角从小到大排序,选择排序后的第一个点,在对剩下的点按极角从小到大进行排序以此到最后原创 2014-06-26 15:06:58 · 395 阅读 · 0 评论 -
平行x 轴的线段 是否 遮掩 计算几何的扩大数据运算的典型应用,扩大根号2倍之后就避免了小数。 poj 3347 Kadj Squares
题目来源: http://poj.org/problem?id=3347题意:变长不同的n个正方形,斜45度按顺序平放在坐标轴上,尽量靠左但不能跃出x=0,问从上往下看,哪些正方形是可见的。题解:1、假如前i-1个正方形位置都确定了,那么可以让第i个正方形与前i-1个正方形每个都计算一次它如果和它相依靠的话左边顶点坐标的值,然后取一个最大的便是这个正方形的左端点位置。 这个结论 需要仔细原创 2014-06-26 15:07:02 · 391 阅读 · 0 评论 -
求射线与线段相交的最多交点 poj 4048
题目来源:http://poj.org/problem?id=4048 Problem E. Chinese Repeating Crossbow Description In Chinese history, Zhuge Liang, prime minister of Shu in three kingdoms period, is regarded as the embodim原创 2014-06-26 15:06:54 · 774 阅读 · 0 评论 -
判断线段相交 + vector. erase迭代指针 的使用 poj 2653 Pick-up sticks
题目来源:http://poj.org/problem?id=2653 分析:题意:按顺序给出一些木棍,输出在最上面的木棍标号。用vector 存储木棍标号, 当前木棍与 vector 中的木棍 相交,则删除该 木棍标号, 注意vector.erase(it) 中 迭代指针的使用。较简洁的写法: double add(double a, double b){原创 2014-06-26 15:06:56 · 310 阅读 · 0 评论 -
判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
题目来源:http://poj.org/problem?id=3304 分析:题目大意:给出n条线段两个端点的坐标,问所有线段投影到一条直线上,如果这些所有投影至少相交于一点就输出Yes!,否则输出No!。解题思路:如果存在这样的直线,过投影相交点(或投影相交区域中的点)作直线的垂线,该垂线(也是直线)必定与每条线段相交,问题转化为问是否存在一条直线和所有线段相交。若存在一条直线与所有原创 2014-06-26 15:06:49 · 402 阅读 · 0 评论 -
计算区域中有t 个点的 区域有多少个+计算几何 + 叉乘+sort+ 二分 + map poj 2398 Toy Storage
题目来源:http://poj.org/problem?id=2398分析: 计算区域中有t 个点的 区域有多少个。#include #include #include #include #include #include #include #includeusing namespace std;typedef long long ll;cons原创 2014-06-26 15:06:47 · 402 阅读 · 0 评论 -
寻找区域中有几个点 叉乘+二分 poj 2318
题目来源:http://poj.org/problem?id=2318一个 矩阵 被分成多个 区域, 然后输入 多个点, 输出 每个区域点的 个数。 当寻找点 落在某个区域时, 用二分法。 #include #include #include #include #include #include #include using namespace std;原创 2014-06-26 15:06:45 · 289 阅读 · 0 评论 -
Same binary weight bitset(STL)
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=412Same binary weight时间限制:300 ms | 内存限制:65535 KB难度:3 描述The binary weight of a positive integer is the number of 1's in its bina原创 2014-06-26 15:06:43 · 272 阅读 · 0 评论 -
括号配对问题 栈(stack)的利用
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=2括号配对问题时间限制:3000 ms | 内存限制:65535 KB难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输原创 2014-06-26 15:06:41 · 352 阅读 · 0 评论 -
字符串替换 string (stl) find + replace
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=113字符串替换时间限制:3000 ms | 内存限制:65535 KB难度:2 描述编写一个程序实现将字符串中的所有"you"替换成"we" 输入输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束输出对于输入的每一行,输出替原创 2014-06-26 15:06:37 · 487 阅读 · 0 评论 -
懒省事的小明 + 优先队列(单元素的比较函数) + longlong
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=55懒省事的小明时间限制:3000 ms | 内存限制:65535 KB难度:3 描述 小明很想吃果子,正好果园果子熟了。在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。小明决定把所有的果子合成一堆。 因为小明比较懒,为了原创 2014-06-26 15:06:34 · 350 阅读 · 0 评论 -
long long _int64使用总结
前言: 在16位环境下,int/unsigned int 占16位,long/unsigned long占32位 在32位环境下,int占32位,unsigned int占16位,long/unsigned long占32位何时需要使用: long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647,而unsigned范围是[0,2^32),即0~42原创 2014-06-26 15:06:32 · 486 阅读 · 0 评论 -
一种排序 set<stl> 无重复 + < 符号重载 ==
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=8一种排序时间限制:3000 ms | 内存限制:65535 KB难度:3 描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小原创 2014-06-26 15:06:30 · 410 阅读 · 0 评论 -
ASCII码排序 multiset<stl> 有重复从小到大输出
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=4ASCII码排序时间限制:3000 ms | 内存限制:65535 KB难度:2 描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。 输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都原创 2014-06-26 15:06:28 · 434 阅读 · 0 评论 -
Binary String Matching string(stl) find()函数的应用 完全不用kmp
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=5Binary String Matching时间限制:3000 ms | 内存限制:65535 KB难度:3 描述Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your原创 2014-06-26 15:06:26 · 539 阅读 · 0 评论 -
擅长排列的小明 string(stl)的应用 + 排列
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=19擅长排列的小明时间限制:1000 ms | 内存限制:65535 KB难度:4 描述小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样原创 2014-06-26 15:06:24 · 338 阅读 · 0 评论 -
queue n-1位数
n-1位数时间限制:3000 ms | 内存限制:65535 KB难度:1 描述已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。 输入第一行为M,表示测试数据组数。接下来M行,每行包含一个测试数据。输出输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都为0,则输出0。样例原创 2014-06-26 15:06:22 · 303 阅读 · 0 评论 -
携程初赛 携程全球数据中心建设 球面上两点的最短距离 + 最小生成树
题目来源:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1003&cid=23003携程全球数据中心建设Time Limit : 10000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 128原创 2014-06-26 15:07:45 · 662 阅读 · 0 评论 -
hdu 1754 I Hate It 线段树 单点更新 求区间最值
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1754 接下来有M行。每一行有一个字符 C (只取'Q'或'U') ,和两个正整数A,B。当C为'Q'的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。当C为'U'的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。 代码如下:原创 2014-06-26 15:07:41 · 368 阅读 · 0 评论 -
zoj 3772 Calculate the Function 矩阵相乘+ 线段树查询
题目来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3772 分析:公式来源:http://blog.csdn.net/u013491262/article/details/23089957#comments 代码如下:const int Mod=1000000007;struct原创 2014-06-26 15:07:39 · 417 阅读 · 0 评论 -
poj 1740 A New Stone Game 博弈
题目来源:http://poj.org/problem?id=1740分析:均势为: 偶数堆,且 x,x, y,y,z,z... 即先人无论怎么取,后人跟先人一个走法,那么后人一定取最后一堆。为N势否则,就是必胜态P。代码如下: #include #include #include #include #include #include stri原创 2014-06-26 15:07:34 · 331 阅读 · 0 评论 -
zoj 3203 Light Bulb 三分,求凸函数的最大值
题目来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366分析:求影子最长。当人从灯往墙走距离x,当 x0=D*(H-h)/H 时,x (0.x0)一直递增。当 D>x > x0 影子函数为 f(x) = -x + (D*h -D*H) / x + D + H 为一个 凸函数。在此区间用三分,求最原创 2014-06-26 15:07:32 · 448 阅读 · 0 评论 -
湘潭大学 Hurry Up 三分,求凹函数的最小值问题
题目来源:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1175 分析:起点和终点, 从起点跑到x轴,然后再从x轴某处到终点坐出租车,求最短时间,此函数为 f(x)。 然后再和直接从起点到终点的时间比较,求最小。由此,我们知道 f(x)是一个 凹函数,用三分的方法。 代码如下:const原创 2014-06-26 15:07:30 · 1345 阅读 · 0 评论 -
hdu 1166 线段树 单点修改 + 询问区间求和 (线段树模板)
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1166借鉴大牛李的线段树模板const int Max_N=50100;int sum[Max_N2] ; // 线段树中每个点需要维护的区间和int x[Max_N]; // 输入数组//从下向上更新值void push_up(int root){ sum[r原创 2014-06-26 15:07:28 · 440 阅读 · 0 评论 -
hdu 1166 树状数组(模板) 更改点值+求区间和
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1166 代码如下:using namespace std ;typedef long long LL;const int Max_N=50010;int cc[Max_N]; // 树状数组,有ci = A(i-lowbit(i)+1) + A(i-lowbit(i)+2原创 2014-06-26 15:07:26 · 301 阅读 · 0 评论 -
有关位运算的基础知识总结
一、位运算包括:&(与)、|(或)、^(异或)、~(取反)、>>(右移)、环境预设:32位机下面,int占2个字节,有符号int a = 11;int b = 1000;(a)2 = (00000000 00001011 )2 //a的二进制表示(b)2 = (00000011 11101原创 2014-06-26 15:07:19 · 346 阅读 · 0 评论 -
poj 3348 Cows 求凸包以及凸包的面积
题目来源:http://poj.org/problem?id=33481:任意多边形p[0,n-1]的面积为for(int i=0 ; i sum+= (sk[i]^sk[(i+1)%(n) ] )*0.5; }2: 求凸包, 用graham 模板代码如下:#include #include #include #include #in原创 2014-06-26 15:07:17 · 371 阅读 · 0 评论 -
poj 1228 Grandpa's Estate 给定了一个凸包的部分顶点和边上的点,判断是否能唯一确定一个凸包
题目来源: http://poj.org/problem?id=1228题意:题目输入一个凸包上的点(没有凸包内部的点,要么是凸包顶点,要么是凸包边上的点),判断这个凸包是否唯一。所谓唯一就是判断能不能在原有凸包上加点, 得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点。很容易得到,当一个凸包唯一时,凸包的每条边上都要有至少三个点,若只有两个点,则可以增加一个点,得到更大的凸包。原创 2014-06-26 15:07:15 · 528 阅读 · 0 评论 -
hdu 3682 To Be an Dream Architect hash
题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=3682 To Be an Dream ArchitectTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2724 Acce原创 2014-06-26 15:07:13 · 423 阅读 · 0 评论 -
对时间的二分 奔跑的xiaodao double + 精度
题目来源:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2086 奔跑的xiaodaoTime Limit: 4000 MSMemory Limit: 65536 KTotal Submit: 57(12 users原创 2014-06-26 15:07:11 · 826 阅读 · 0 评论 -
-1 的 二进制表示
对于有符号整型数的简单认识就是,最高位为符号位,0为正,1为负,那么剩下几位应该如何表示呢?理所当然的认为,既然是1表示为0000 0001(假设为8位整型数,下同)。1 : 0000 0001取反: 1111 1110加一: 1111 1111 ( 为 -1 的二进制表示)(-1)^1 == -2原创 2014-06-26 15:07:09 · 1343 阅读 · 0 评论 -
判断几何体是否相交 + 正方形的坐标确定+ 输入scanf格式控制
题目来源:http://poj.org/problem?id=34491:给定一个正方形 对角的坐标 (x0 ,y0), (x2,y2), 求出另2个点(x1,y1), (x3,y3)的坐标公式。(x1,y1)(x3,y3) 坐标可交换,不影响结果x0+x2 = x1+x3y0+ y2 = y1+y3y2-y0 = x3 -x1x2-x0 = y1-y3x1 = (x0 +原创 2014-06-26 15:07:07 · 408 阅读 · 0 评论 -
计算几何 点线的综合题, 精度+ 线段相交+ 求交点 + 求面积 poj 2826 An Easy Problem?! (推荐)
题目来源: http://poj.org/problem?id=2826这是一道细节题。题目中让我们用两条线段接雨水,雨水是垂直落下的,问我们用给定的两条线段能接到多少水。这里用很多种情况都要一一讨论。1:两条线段不想交的时候接不到雨水 2:两条线段重合的时候接不到雨水3:两条线段的交点与期中一条线段的最高点相同时,无法接到雨水4:有一条线段水平时接不到雨水。5:原创 2014-06-26 15:07:04 · 484 阅读 · 0 评论 -
poj 3384 Feng Shui 半平面交的应用 求最多覆盖凸多边形的面积的两个圆 的圆心坐标
题目来源:http://poj.org/problem?id=3384分析: 用半平面交将多边形的每条边一起向“内”推进R,得到新的多边形(半平面交),然后求多边形的最远两点。代码如下:const double EPS = 1e-10 ;const int Max_N = 105 ;double add(double a, double b){ return (f原创 2014-06-26 15:08:28 · 507 阅读 · 0 评论 -
半平面交 模板 poj 3335 poj 3130 poj 1474 判断半平面交是否为空集
半平面交模板const double pi= acos(-1.0);#define arc(x) (x / 180 * pi)const double EPS = 1e-8;const int Max_N = 105;struct Point{ double x,y; Point(){} Point(double x, double y):x(原创 2014-06-26 15:08:21 · 540 阅读 · 0 评论 -
高斯消元 zoj 3645 poj 1222/XOR消元
double a[maxn][maxn] , x[maxn] ; //a[i][j] 系数矩阵 , a[i][n+1] = y[i] , x解int n ; //n个方程void guass(){ int i , j , k ; double sum , rate ; for(k = 1 ; k ){原创 2014-06-26 15:08:19 · 412 阅读 · 0 评论 -
向量旋转专题
二维向量旋转知识点参考: http://www.cnblogs.com/woodfish1988/archive/2007/09/10/888439.html x1= x * cos(θ) - y * sin(θ)y1= x * sin(θ) + y *cos(θ) 求平面上任意点 绕任意点p(x,y)旋转 角度 sita 后的坐标矩阵hdu 1700 Points原创 2014-06-26 15:08:17 · 1039 阅读 · 0 评论