kuangbin专题问题题解
DeathYmz
划水摸鱼要不得!!!
不上紫名不改简介=_=(改了改了 打leetcode周赛去了 codeforces太晚了养身要紧)
展开
-
不要62 HDU - 2089 (数位d'p)
不要62HDU - 2089 题意:给出L和R,问在L到R区间内有多少数,数内没有4和62.思路:这道题的数据范围不是很大,可以直接打表,但是也可以按照数位dp的做法,p[len]记录数的每一位。dfs()进行搜索,len表示当前到哪一位,six表示前一位是不是6,flag判断这个数是不是边界数,记录已经搜索的dp[len][six].对于搜索2358 当前在3的时候 对于那个fo...原创 2019-05-11 16:32:24 · 1159 阅读 · 0 评论 -
Pipe POJ - 1039(线段相交+计算几何+暴力)
Pipe POJ - 1039 分类:线段相交+计算几何+暴力 题意:给你管道上方的折点(下方为上方y-1),问光线最远能达到的横轴位置. 思路:判断线段相交方式,枚举上下端点,判断与管道的折点处垂线的关系,相交说明还在管道内。可行。#include<iostream>#include<cstdio>#include<algorithm>#inc...原创 2018-08-23 14:47:36 · 549 阅读 · 0 评论 -
Geometric Shapes POJ - 3449(计算几何+线段相交+细心)
Geometric Shapes POJ - 3449 分类:细心+线段相交 题外话:一个tot写成了0,找了一上午bug,我粗心的想打死自己,哭了都要,题真的不难!但是就是代码有点长!一定要细心,重复的不要复制粘贴之后就不改,简直要命。 题意:给你一堆图形的坐标(直线,三角形,正方形,矩形,多边形),问他们之间的相交情况。 思路: 1、处理存储的问题,将不同形状的点按顺序存起来,三角...原创 2018-08-23 14:16:57 · 479 阅读 · 0 评论 -
Kadj Squares POJ - 3347
Kadj Squares POJ - 3347 题意:给出正方形的边长序列,问从上面看,能看到哪些正方形。 思路:没有思路,看了题解,emmm。参考博客#include<iostream>#include<cstdio>#include<cmath>#include <cstring>#include <algorithm&g...原创 2018-08-22 16:06:40 · 408 阅读 · 0 评论 -
An Easy Problem?! POJ - 2826 (计算几何+线段相交+精度)
An Easy Problem?! POJ - 2826 分类:计算几何+精度判断+线段相交+交点 题外话:写了半天才过了,虽然思路想起来很简单,但是超多的精度判断,还有好多细节,还有我又一次在输出:%lf和%f上面WA几次。后来参考别人的博客,有几个博客说AC代码,但是提交时WA,可能是后来题目的测试数据又变了一些把。 题目:给你两个线段,问可以存储的水量最多为多少。 思路: 判断线...原创 2018-08-22 14:11:25 · 336 阅读 · 0 评论 -
POJ 2398 Toy Storage
POJ 2398 Toy Storage 思路:和TOYS POJ - 2318 题的思路一样,题意也是差不多,只不过输出为,玩具数量: 分区数,并按照玩具数量的升序输出。代码和之前的差不多,也只是修改了一下输出。#include<iostream>#include<cstdio>#include<cstring>#include<strin...原创 2018-08-19 12:37:27 · 268 阅读 · 0 评论 -
TOYS POJ - 2318
TOYS POJ - 2318 题意:给出n,m,x1,y1,x2,y2;n代表又n个隔板,m代表将放入m个玩具,x1,y1代表左上的点,x2,y2代表右上的点。 思路:初学向量这方面,根据题解的意思,自己写的。主 要利用的原理是向量叉乘:向量P与向量Q。 P*Q&gt;0 P在向量Q的顺时针方向(右) P*Q&lt;0 P在向量Q的逆时针方向 (左) P*Q=0 P与Q共线,可能同向...原创 2018-08-19 11:09:53 · 329 阅读 · 0 评论 -
So Easy! HDU - 4565
So Easy! HDU - 4565 思路:题意虽然写着so easy 但是emmmm没想到怎么处理这个小数情况。看了题解: #include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;typedef long long...原创 2018-08-19 09:33:25 · 297 阅读 · 0 评论 -
Experienced Endeavour UVA - 11551
Experienced Endeavour UVA - 11551 思路:水题,理解好题意可以直接构造 矩阵。给出n,r,n是代表接下来又n+1行,先给出一行n个数的数列ai,接下来n行开头给一个个数x,输入x个数bi,代表第ai接下来的变化要加上数列a(bi)的值,所以只要给构造的举证该位置置为1。r代表幂次。#include <cstdio> #include<io...原创 2018-08-19 09:28:13 · 308 阅读 · 0 评论 -
Bear in the Field CodeForces - 385E
Bear in the Field CodeForces - 385E 思路:根据所给条件写出递推式。 fxn=f(xn-1)+d(xn-1)+k k=xn-1+yn-1+2+t(n-1) tn-1=t(n-2)+1 为了方便计算将1-n 变为0-n-1,初始时将x-1,y-1,又由于求k时候是原始位置x+y,所以为x+y+2; 得出递推矩阵#include<cstdio&g...原创 2018-08-19 09:19:47 · 236 阅读 · 0 评论 -
Arc of Dream HDU - 4686
Arc of Dream HDU - 4686 思路:#include<cstdio>#include<cstring>#include<iostream>using namespace std;typedef long long ll;const ll mod=1000000007;struct matrix{ ll x[5][5]...原创 2018-08-12 21:54:21 · 184 阅读 · 0 评论 -
Construct a Matrix FZU - 1911
Construct a Matrix FZU - 1911 思路:先用矩阵快速幂,求出要构造矩阵的大小,接下来就是怎么构造的了,不太会参考了别人的博客,这个构造的就很清晰了。 参考链接 求出来计算出L=S(n)%m之后,构造题目中要求的矩阵,找规律后发现,可以构造成以下最简单的形式 当L=0或者L为奇数时为No,L为偶数时Yes,例如L=6时 0 1 1 1 1 1...原创 2018-08-15 10:10:37 · 332 阅读 · 0 评论 -
How Many Calls? UVA - 10518
How Many Calls? UVA - 10518 题意:求f(n)的递归调用次数,用输出base进制的最后一个数。 思路:f(0)=1,f(1)=1,f(n)=f(n-1)+f(n-2)+1;#include<iostream>#include<cstdio>#include<cstring>using namespace std;ty...原创 2018-08-15 10:00:49 · 254 阅读 · 0 评论 -
Segments POJ - 3304
Segments POJ - 3304 题意:给出n个线段,问是否有一条直线,可以使所有线段投影在这上面并交一点。 思路:并不是很会看了题解这个问题可以转化为是否存在一条直线和每个线段都有交点。 接下来,枚举每两个线段,两个线段可能组成的四条直线,注意重点。在利用叉积的性质,判断其他所有线段是否都和这条直线有交点 判断线段与直线l是否相交的方法: 1:利用叉积的性质,判断线段的两个端...原创 2018-08-20 19:11:47 · 261 阅读 · 0 评论 -
Intersecting Lines POJ - 1269
The Doors POJ - 1556 题意:给出两条直线上的两点求两直线的交点。 思路: 一般方程法: 直线的一般方程为F(x) = ax + by + c = 0。既然我们已经知道直线的两个点,假设为(x0,y0), (x1, y1),那么可以得到a = y0 – y1, b = x1 – x0, c = x0y1 – x1y0。 因此我们可以将两条直线分别表示为 F0(x...原创 2018-08-20 19:15:59 · 197 阅读 · 0 评论 -
Line of Sight POJ - 2074(思维+数学)
Line of Sight POJ - 2074 分类:思维+数学题 题意:给出房子的位置和参考线的位置,接下来给一系列障碍物的位置,问在参考系上能看到完整房屋的最长连续长度为多少。 思路:反向思维, 1、每输入一个障碍物的位置,首先判断是不是合法障碍物(合法的是在,房子和参考系中间。在房子之上或平行,或者参考系之下平行,都不会影响视线) 2、计算他在x轴的视觉盲区,存下来。注意:s,e...原创 2018-08-23 17:03:31 · 418 阅读 · 1 评论 -
Beautiful numbers CodeForces - 55D (数位dp)
Beautiful numbersCodeForces - 55D 题意:给出t个样例,每样例给出L和R问在L和R中间有多少数为漂亮数,漂亮数的定义为:数里面的每一位都可以被该数整除。思路:数位dp,首先将数分解为位数,然后进行dfs搜索。对于dfs里面每一位参数以作解释了。对于dp,2520是1-9的最小公倍数。50是1-2520里面有多少是2520的因数。#include&l...原创 2019-05-11 16:19:05 · 240 阅读 · 0 评论 -
畅通工程再续 HDU - 1875(最小生成树)
畅通工程再续 HDU - 1875 题意:中文题意不解释了思路:还是模板题,只不过给你点,自己加边,要判断一下是否符合条件。#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>using name...原创 2019-01-22 13:30:30 · 302 阅读 · 0 评论 -
还是畅通工程 HDU - 1233(最小生成树)
还是畅通工程 HDU - 1233 题意:中文题意就不用说了。思路:很简单的模板题。 #include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;//最小生成树 const int maxn=100+...原创 2019-01-22 13:11:26 · 271 阅读 · 0 评论 -
QS Network ZOJ - 1586 (最小生成树kruskal)
QS Network ZOJ - 1586 (最小生成树)题意:给你t表示数据,每组数据有:n表示点得数量。接下来一行有n个数表示每个点使用得适配器得价格。接下来n*n得矩阵表示每两个点之间的修建网线的价格。思路:板子题把,使用kruskal的板子,直接将边权值加进去的时候顺便加入两个点的值。过一遍就好了。没什么坑 #include<cstdio>#inclu...原创 2019-01-22 11:18:25 · 246 阅读 · 0 评论 -
关于线段的一些模板(判断线段相交+判断直线和线段相交+点到线段距离+点在线段上)
来源kuangbin模板关于一些精度const double eps=1e-8; const double PI=acos(-1.0);int sgn(double x)//{ if(fabs(x)&lt;eps) return 0; if(x&lt;0) return -1; else return 1;}点的结构struct point{ ...原创 2018-08-25 10:15:04 · 655 阅读 · 0 评论 -
A Round Peg in a Ground Hole POJ - 1584
#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt;cstring&gt;using namespace std;const int N=200;const double eps=1原创 2018-08-25 09:40:59 · 227 阅读 · 0 评论 -
Cows poj 3348 (凸包+多边形面积)
Cows poj 3348 分类:凸包+多边形面积 题意:给出点的位置,求最大面积。答案除以50(emmm我求出最大面积然后和答案一直不一样,后来发现。。。忘记除以50了) 思路:运用了Graham_Scan 算法和求多边形面积公式。 AC代码://例题;Graham算法#include<iostream>#include<cstdio>#include...原创 2018-08-21 22:37:19 · 377 阅读 · 0 评论 -
Space Ant POJ - 1696(计算几何+极角排序)
Space Ant POJ - 1696 分类:极角排序+计算几何 题意:给出坐标点,经历所有点,(不能走重复的路,只能向左选择走)。 思路:刚看了Graham_Scan算法,照着模板用在这上面写了一遍,嗯错了。这个是求凸包的顶点序列,用在这题是不怎么合适。后看了别人题解,使用极角排序。 关于求极角利用的是叉积的性质。 关于第一个点的选区是最下方的点,直接把这个算作开始的点。 排序,根...原创 2018-08-21 15:39:30 · 303 阅读 · 0 评论 -
Intersection POJ - 1410
Intersection POJ - 1410 分类:计算几何+线段相交 题目: You are to write a program that has to decide whether a given line segment intersects a given rectangle. An example: line: start point: (4,9) end poi...原创 2018-08-21 12:39:27 · 319 阅读 · 0 评论 -
Treasure Hunt POJ - 1066
Treasure Hunt POJ - 1066 分类:计算几何+线段相交题目: Archeologists from the Antiquities and Curios Museum (ACM) have flown to Egypt to examine the great pyramid of Key-Ops. Using state-of-the-art technology ...原创 2018-08-21 12:26:29 · 397 阅读 · 0 评论 -
Pick-up sticks POJ - 2653
Pick-up sticks POJ - 2653 分类:计算几何+线段相交** 题目: Stan has n sticks of various length. He throws them one at a time on the floor in a random way. After finishing throwing, Stan tries to find the top sti...原创 2018-08-21 12:18:50 · 239 阅读 · 0 评论 -
The Doors POJ - 1556
The Doors POJ - 1556 分类:计算几何+判断线段交叉+最短路 题外话:痛苦的领悟,找bug半天,发现是自己定义两个名称一样的变量,导致后面的错了,maye,找了一个小时。多次事实告诉我,不要定义两个重名的 思路:保存点的信息,墙信息,给两两个点之间符合条件(不与线段(墙)交叉)建立边,最短路直接Floyd找答案。//没两点建立边,跑最短路。#include<i...原创 2018-08-21 00:32:23 · 368 阅读 · 0 评论 -
M斐波那契数列 HDU - 4549
M斐波那契数列 HDU - 4549 思路:题意很简单,但是不好写,如果不知道幂的取模的话,基本就是tle。要知道如下定理:当m为素数,且a、m互质时, a^n % m = a^(n%(m-1)) % m。取模的问题解决了,就是矩阵快速幂了。#include<iostream>#include<cstdio>#include<cstring>us...原创 2018-08-15 09:52:53 · 331 阅读 · 0 评论 -
Cellular Automaton UVA - 1386
Cellular Automaton UVA - 1386 无数次次RE原因竟然是,开了一个int的n输入用ll型的,简直分分钟奔溃。 思路:开n*n的矩阵内存会爆,这里通过找系数矩阵的规律,用一行代表n行的数。 例如样例1的第一行系数矩阵:1 1 0 0 1,第二行时右移一位1 1 1 0 0 后面即使变换后也是这个道理。#include<iostream>#inclu...原创 2018-08-12 13:23:51 · 246 阅读 · 0 评论 -
Contemplation! Algebra UVA - 10655
Contemplation! Algebra UVA - 10655 题意:给a+b,ab,求a^n+b^n。 思路:a^n+b^n=(a^(n-1)+b^(n-1))*(a+b)-ab(a^(n-2)+b^(n-2)). 即f(n)=(a+b)f(n-1)-abf(n-2). 坑点:输入时只输入a b==0 0的时候结束。#include&lt;cstdio&gt;#include...原创 2018-08-12 09:38:19 · 275 阅读 · 0 评论 -
DNA sequence HDU - 1560
DNA sequence HDU - 1560The twenty-first century is a biology-technology developing century. We know that a gene is made of DNA. The nucleotide bases from which DNA is built are A(adenine), C(cytosin...原创 2018-04-04 21:01:48 · 234 阅读 · 0 评论 -
Common Subsequence POJ - 1458
Common Subsequence POJ - 1458 求两序列的最长公共序列。 模板 L[i][j]=L[i-1][j-1]+1;更新 L[i][j]=max(L[i-1][j],L[i][j-1]);继承#include<iostream>#include<cstring>#include<cstdio>#include<c...原创 2018-04-16 20:28:00 · 263 阅读 · 0 评论 -
FatMouse's Speed HDU - 1160
FatMouse’s Speed HDU - 1160题意: 胖老鼠认为越胖的老鼠跑的越快,为了证明这个,你想要通过一堆数据证明越胖越慢。 输入:一堆老鼠,一个老鼠一行,到文件结束。每行包括重量,和速度。(不超过1000只老鼠,整数不超过10000) 输出:n个老鼠的数量,n行表示编号,该编号的老鼠必须重量是递增的,速度是递减的。 思路:排序找最长上身序列。#include<...原创 2018-04-16 11:20:14 · 411 阅读 · 0 评论 -
Monkey and Banana HDU - 1069
Monkey and Banana HDU - 1069 有偷偷的看了一下题解,然后理解了。自己敲了一遍没有任何问题。 题意 一个团队研究猴子的智商,他们在房屋顶放了一个香蕉,与此同时,给猴子提供了一些盒子。如果猴子足够聪明,他们就可以通过摆盒子建造一个路到达房顶拿到食物。研究室由n个类型的盒子,每个类型的盒子数量不限。每个类型的盒子会给出长宽高。盒子可以调整。他们想要确保搭积木的最高的那个...原创 2018-04-10 19:46:47 · 232 阅读 · 0 评论 -
最少拦截系统 HDU - 1257
最少拦截系统 HDU - 1257 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求...原创 2018-04-15 19:31:05 · 173 阅读 · 0 评论 -
Longest Ordered Subsequence POJ - 2533
Longest Ordered Subsequence POJ - 2533 求最长上升序列。emmm模板题注意一下输出一开始赋初值:ans=1。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>const int maxn=1000+10;int a...原创 2018-04-15 19:26:03 · 245 阅读 · 0 评论 -
Ignatius and the Princess IV HDU - 1029
Ignatius and the Princess IV HDU - 1029 题意: 给你一个奇数n,然后给你n个数,让你张一个特殊的数在n个数中,这个数在n个数中至少出现了半数以上。输出这个数。 半数以上,只要排序好输出中间那个数就好。#include<iostream>#include<algorithm>#include<cstdio>u...原创 2018-04-10 13:41:49 · 159 阅读 · 0 评论 -
Max Sum Plus Plus HDU-1024
Max Sum Plus Plus HDU-1024 题意:给你n个数,让你找m组个连续序列,使m个连续序列最大(要求也是序列不重叠),输出m组序列和的最大值。这题的状态转移方程 dp[i][j]=max(dp[i][j-1]+a[j],Max(dp[i][k]+a[j])); 思路:刚接触DP还不是很会,然后看了别人的解题思路,想了好一会他的过程。 首先把看成求一段序列的最大连续子...原创 2018-04-10 13:29:54 · 338 阅读 · 0 评论 -
Tickets HDU - 1260
Tickets HDU - 1260有一部很好看的电影,许多人冲进电影院看,但是这对买票人来说简直很浪费时间,他想快点回家。一个不错的策略就是减少总共的卖票时间,就是让相邻的人一起买票。但是买票机器有限制,只能买一张票或者相邻的票。求joe能最快什么时候回家。 输入:有n不同的场景,每个尝尽包含三行。K人数,k个整数表示每个人买票需要的时间,k-1表示相邻两个人需要购票的时间。 输出:工作...原创 2018-04-15 15:53:10 · 431 阅读 · 0 评论