![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
归档
文章平均质量分 81
归档
_hxh
这个作者很懒,什么都没留下…
展开
-
HDU 6030 Happy Necklace【矩阵快速幂】
题目链接题意:n个点组成的一串序列,点只有红色和蓝色两种。对于序列中的每段连续的素数长度的子串,子串中的红色点的数量不能少于蓝色点的数量。求有多少种排列可能。因为2是最小的素数,考虑长度为2的子串。红色为A,蓝色为B,则只有AA,AB,BA三种情况。对每种情况,在后面加上A或B,AA可以形成AA,AB,AB可以形成BA,BA可以形成AA。通过这个递推扩展到长度为n的情况,用矩阵快速幂加原创 2017-06-25 16:46:33 · 555 阅读 · 0 评论 -
HDU 6026 Deleting Edges【图论】
题目链接题意:n个顶点编号为0到n-1的图,从中删去一些边形成一棵树,保证树上任意一个点到0点的距离等于原图中0到这个点的最短路长度。求这棵树有多少种画法。先用dijkstra算法求出原图中0点到每个点的最短路的长度,再暴力的跑一遍判断两个点A和B形成的边是否能等于A到中间点C加上C到B的长度,如果可以,就可以用这个边代替原来的边,最后相乘就是答案。要模除mod。#include #原创 2017-06-25 18:48:29 · 368 阅读 · 0 评论 -
sublime text 3 添加头文件代码段
打开sublime text 3,进入Tools -> Developer -> New Snippet,进入之后是这样的:<snippet> <content><![CDATA[这里是模板内容]]></content> <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <ta原创 2016-11-22 14:07:15 · 4790 阅读 · 0 评论 -
HDU 4793 Collision【计算几何】
题目链接题意:有一个小球向一个圆飞去,碰到这个圆会反弹,问在另一个大圆内停留的时间。分类讨论,然后分别推公式。#include #include #include #include #include using namespace std;const double eps = 1e-8;double Rm, R, r, x, y, vx, vy;int main()原创 2017-06-27 20:08:00 · 289 阅读 · 0 评论 -
HDU 4427 Math Magic【DP+滚动数组】
题目链接题意:有K个正整数,和为N,最小公倍数为M。求有多少种情况。状态很好推的DP,令dp[i][j][k]表示前i个数和为j最小公倍数为k有多少种情况,显然dp[i][j+t][lcm(k,t)]+=dp[i-1][j][k]。但是难点在于开不出这么大的数组,所以要用滚动数组。此外,还要预处理1000以内的LCM和M的所有因数,因为既然这K个数的最小公倍数是M,那么每个数肯定都是M的因原创 2017-06-28 17:40:02 · 227 阅读 · 0 评论 -
CF round#420 div.2 E Okabe and El Psy Kongroo【矩阵快速幂】
题目链接题意:从(0,0)走到(k,0),每次可以从(x,y)走到(x+1,y+1)或(x+1,y)或(x+1,y-1),坐标中有n条线段,对于第i条线段的a[i],b[i],c[i],a[i]=b[i-1],b[i]=a[i+1],且对于a[i]由于纵坐标最大只有15,所以把0到15这16个点全部塞在一个矩阵里面,对于每条线段跑矩阵快速幂,最后把n个矩阵乘起来。从(0,0)开始,最后输出原创 2017-06-27 17:34:56 · 300 阅读 · 0 评论 -
HDU 4694 Important Sisters【支配树】
题目链接题意:n个顶点编号为1到n,求从第n个顶点到其他每个顶点中所必须经过的所有顶点编号之和。构造支配树求答案即可。支配树的讲解感觉对我这种菜鸡来说用处不大… 学一下模板吧#include #include #include #include #include using namespace std;#define ll long longconst int m原创 2017-06-24 22:01:47 · 364 阅读 · 0 评论 -
HDU 4798 Skycity【几何】
题目链接题意:有个圆台型建筑物,最上面的圆的半径是r,最下面的圆的半径是R,高度为H,有F层,现在给每层的四周贴玻璃,要贴成正多边形的玻璃,且每块玻璃的面积不能小于S。求玻璃的总的最小面积。首先玻璃的长度越小肯定总面积越小,而每层的高度可以算出来,所以最小的长度可以知道。通过几何可以算出需要多少块玻璃。但是由于不一定能整除,块数n会偏小,所以要再从n倒推真正的玻璃长度,从而算出答案。还有一原创 2017-06-27 17:24:34 · 211 阅读 · 0 评论 -
HDU 4800 Josephina and RPG【概率DP】
题目链接题意:有C(m,3)个队伍,已知第i个队伍在面对第j个队伍时的胜率。现在要按顺序打败n支队伍,可以任选一支队伍开始,每次打赢后可以选择不换队伍或者换成刚才打赢的那支队伍,求最后能打败n支队伍的概率。很明显的概率DP,dp[i][j]表示击败前i支队伍后用的队伍是j。那么击败队伍i后只有两种可能,换或者不换。如果不换,用的还是队伍j,dp[i][j] = max(dp[i][j],原创 2017-06-27 17:10:25 · 234 阅读 · 0 评论 -
HDU 6024 Building Shops【DP】
题目链接题意:在x轴上有n个classroom,要选择若干个classroom建candy shop。对每个classroom,给出它的位置坐标和在这个点建candy shop的费用。总费用为所有建candy shop的点的建造费用之和加上所有没建candy shop的classroom到它左边离它最近的candy shop的距离之和。求最小的总费用。很容易看出是一个dp。对于每个建can原创 2017-06-25 14:18:37 · 226 阅读 · 0 评论 -
ZOJ 3822 Domination【概率DP】
题目链接题意:有个n*m的棋盘,每次在其中随机选一个位置放一个棋子,问期望次数是多少次之后,棋盘上的每行每列至少都要有一个棋子。令dp[i][j][k]表示放了k个棋子后有i行和j列上至少有几个棋子的概率(注意不是1到i行和1到j列),每次放一个新的棋子对原来状态的影响只有四种可能:1. 没有影响。2. 多出新的一行满足要求。3. 多出新的一列满足要求。4. 多出新的一行一列满足要求。原创 2017-06-26 15:28:24 · 296 阅读 · 0 评论 -
HDU 4430 Yukari's Birthday【二分+枚举】
题目链接题意:要在r个同心圆上插n支蜡烛,第i层插k^i支蜡烛,中心可插可不插,要使k*r最小,k*r相同的情况要使r最小。根据数据范围判断出r最多就40左右,因此枚举r,二分判断k就行。难点在于二分的姿势,因为这题如果二分上界取的大的话k^i会爆long long,在判断k^i是否大于n的时候要写成tmp > (n / mid)。#include #include #includ原创 2017-06-28 15:59:02 · 232 阅读 · 0 评论 -
数据库中关于范式的判断
1NF 实体中不能有重复的属性。每个元组的每个分量都是原子的。2NF 数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。 在1NF的基础上,要求每个非键属性依赖于键的整体(直接或间接),而不是键的部分属性,即不允许有非平凡函数依赖的右面是非键属性,而左面是某个键的真子集。 满足2NF的几种情形: 1.不存在非平凡函数依赖。 2.存在非平凡函数依赖,且其右面是某个键的原创 2017-06-14 17:04:25 · 16180 阅读 · 0 评论 -
HDU 4689 Derangement【DP】
题目链接题意:1到n的n个数,打乱后减去原来的数的正负号,形成一串正负号的字符串,如[1,2,3,4,5]打乱后变成[5,4,1,2,3]就是[+,+,-,-,-]。给定这样一串正负号形成的字符串,问有几种排列方式。对于一个为正号的位置,只能从之后的数中选一个放在这个位置。而对于一个为负号的位置,只能从之前的数中选一个放在这个位置。因此令dp[i][j]表示前i个位置中还有j个正号没有原创 2017-06-24 17:04:11 · 295 阅读 · 0 评论 -
HDU 6031 Innumerable Ancestors【LCA】
题目链接题意:n个点形成的一棵树,根节点为1,给两个点的集合A和B,从A和B中各取出一点,要求这两个点的LCA最大(深),输出最大深度。先求一遍LCA,因为两个点的LCA不可能比这两个点都要深,所以按深度从大到小排序,剪枝:如果当前的最大深度比比较到的点要深则直接退出。倍增LCA#include #include #include #include #include #i原创 2017-06-25 22:03:44 · 270 阅读 · 0 评论 -
HDU 6205 card card card【最长连续子串+尺取法】
题目链接题意:n堆牌,每堆牌有个penalty value,刚开始可以把第一堆牌移到最后面,这个操作可以进行任意多次。然后从第一堆牌开始,每次加上这堆牌的数目减去这堆牌的penalty value,如果这个值小于0则取走到现在为止的所有牌,游戏结束。求刚开始时移第一堆的这个操作进行几次的时候可以拿走的牌最多。其实就是一个变形版的最长连续子串,保证子串中每个前缀和都大于等于0,如果有一个小于0,这串就原创 2017-09-10 21:45:45 · 221 阅读 · 0 评论 -
HDU 6172 Array Challenge【推公式/猜+矩阵快速幂】
题目链接题意:给一堆公式,求⌊a[n]‾‾‾‾√⌋\lfloor\sqrt{a[n]}\rfloor的值。官方题解的公式推的实在是没什么道理,但是这个xjb乱猜我真的是一口老血喷出来。。。令f(n)=⌊a[n]‾‾‾‾√⌋f(n)=\lfloor\sqrt{a[n]}\rfloor,则f(n)=4f(n−1)+17f(n−2)−12f(n−3)f(n)=4f(n-1)+17f(n-2)-12f(n-原创 2017-08-24 22:09:24 · 569 阅读 · 0 评论 -
HDU 3223 Decrypt Messages 【N次剩余+模拟】
题目链接题意:xqmodp=ax^q mod p = a,已知p,q,ap,q,a,求从2000.01.01 00:00:00过了xx秒后是几年几月几日几时几分几秒。要列出所有的可能情况。如果年份模10等于5或8,则这一年的最后一天会多一秒。(+1s)求N次剩余,然后模拟出时间…… 不知道为什么,T到死…… 调了调又换了个板子才过……辣鸡模板……毁我青春……#include <iostream>#原创 2017-09-30 17:08:08 · 323 阅读 · 0 评论 -
OpenCV之卷积得到二阶导数
设图像中每个像素点的值为f(x)f(x)f(x),对其做泰勒展开。f(x+h)=f(x)+hf′(x)+12h2f″(x)+13!h3f‴(x)+O(h4)f(x+h)=f(x)+hf′(x)+12h2f″(x)+13!h3f‴(x)+O(h4)f(x+h)=f(x)+hf^{'}(x)+\frac{1}{2}h^{2}f^{''}(x)+\frac{1}{3!}h^{3}f^{'''}(...原创 2017-09-01 16:54:17 · 2226 阅读 · 1 评论 -
OpenCV之5种滤波方法
5种滤波方法分别为:3种线性滤波:方框滤波、均值滤波、高斯滤波2种非线性滤波:中值滤波、双边滤波简单来说,方框滤波就是邻域内取个平均值,均值滤波就是方框滤波再归一化一下,高斯滤波就是用正态分布去和图像做卷积。中值滤波是用像素点邻域灰度值的中值来代替这个像素点的灰度值,而双边滤波像素点的灰度值是邻域像素值的加权组合,是一个基于空间分布的高斯滤波函数,可以很好的保留边缘附近的像素值。从书上抄的代码:#i原创 2017-09-01 21:23:34 · 1383 阅读 · 0 评论 -
HDU 6153 A Secret【扩展KMP】
题目链接题意:给两个字符串s和t,求t的每个后缀的长度乘以它在s中出现的次数之和。用了扩展KMP的板子,因为扩展KMP求出的extend[i]extend[i]表示的是ss的ii到strlen(s)−1strlen(s)-1字符和tt的最长公共前缀。题目中要求后缀,就将两个字符串reverse一下。这样的话,extend[i]extend[i]就变成了ss的前strlen(s)−istrlen(s)原创 2017-08-20 15:16:34 · 291 阅读 · 0 评论 -
POJ 3449 Geometric Shapes【计算几何+判线段相交】
题目链接题意:有一堆多边形,问每个多边形和哪些其他多边形相交。讲道理是个水题……就是输入输出麻烦了点,中间判下线段相交就行。线段相交的模板:// 判断一个数是否为0bool zero(double x){ if (fabs(x)<eps) return true; else return false;}// 求矢量p0->p1, p0->p2的叉积double xm原创 2017-09-04 14:29:58 · 223 阅读 · 0 评论 -
POJ 2187 Beauty Contest【平面最远点对+旋转卡壳】
题目链接题意:求平面最远点对距离的平方。可以用旋转卡(qia)壳(qiao)来求最远点对,旋转卡壳的介绍点这里。里面这个动图还挺有趣的……#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <string>#include <cmath>#include <vector>#原创 2017-09-08 10:23:48 · 241 阅读 · 0 评论 -
HDU 6180 Schedule【优先队列+模拟】
题目链接题意:有一些任务,要用一些机器去做这些任务,给出每个任务的开始时间和结束时间。一台机器最多只能同时做一个任务,并且机器关掉不能再开,求在使用最少机器的情况下,最少的机器个数和最短的运行时间。拿两个优先队列模拟…贪心的找现在空着的机器中做完上个任务最晚的那个,这样才能让机器等的时间最少。代码里有详细解释。#include <bits/stdc++.h>using namespace std;原创 2017-08-25 14:35:18 · 241 阅读 · 0 评论 -
ZOJ 3981 Balloon Robot 【离线处理】
题目链接题意:有n支队伍,一张桌子有m个座位顺时针编号1~m。p个预言。预言a队伍在b时刻ac一道题目。机器人每个时刻都顺时针走一步,有需要气球的就发。每支队伍,ac后多少时刻没收到气球就有多少不开心的值,问机器人起始位置在哪里可以使得总的不高兴值最小。输出最小的不高兴值。假设机器人在第11个位置,那么位置pospos的队伍在tt时刻过题要等待的时间为(pos−1−t(pos-1-t % m+m)m原创 2017-11-01 23:33:28 · 257 阅读 · 0 评论 -
POJ 1039 Pipe【计算几何+直线相交】
题目链接题意:有一根管子,从管口射进去一根光线,问最远能到的点的横坐标。枚举上下两个端点。先判断经过这两个端点的光线是否能和管口相交,再计算这根光线所能达到的最远的点。要注意的地方: 1. 求的是横坐标,不是距离 2. 坐标可能会有负,ans初始化为-INF 3. 注意精度问题卡精度WA了好久,好气啊……#include <iostream>#include <cstdio>#includ原创 2017-08-23 18:47:03 · 234 阅读 · 0 评论 -
CF round#439 div.2 C The Intriguing Obsession【DP】
题目链接题意:有三种颜色的点,两点之间建无向边的长度为1,要求同色之间若能到达,他们之间最短距离的长度至少为3,求有几种建边方式。首先容易得到同色之间若能到达,一定是经过了另外两种颜色的点,才能保证长度至少为3。换句话说,若红色的两个点都连到了黄色的同一个点上,就不符合要求。所以,红色的每个点最多和黄色的一个点相连,黄色同理。最后答案就是三个颜色两两之间可连的边数相乘。令dp[i][j]dp[i][原创 2017-10-09 13:11:46 · 217 阅读 · 0 评论 -
HDU 6122 Color the chessboard【思维】
题目链接题意:n*m的棋盘,每个格点有三种颜色,红色,蓝色或者白色。现在要把所有白色的点都染成红色或者蓝色,要求染完后对于这个棋盘上任意一个偶数长偶数宽的长方形,里面红色的点的个数都等于蓝色的点的个数,求有几种染色方案。把红色当做1,蓝色当做0。如果现在最左上角是这样的:⎡⎣⎢⎢⎢10⋮10⋮⋯⋯⋱⎤⎦⎥⎥⎥ \left[ \begin{matrix} 1 & 1 & \cdots \\原创 2017-08-16 20:39:49 · 531 阅读 · 0 评论 -
HDU 6150 Vertex Cover【构造】
题目链接题意:求最小点覆盖,给你一个错误的算法,输出一个反例使得正确答案比它小三倍以上。这个构造太吊了啊 构造一个二分图,设左边有nn个点,标号是11到nn。对于每个 i∈[1,n]i\in[1, n],都在右边新建 ⌊ni⌋\lfloor \frac{n}{i} \rfloor个点,每个点都选择左边的ii个点连1条边,使得左边每个点最多只被多加了一条边。这样构造完成后可以发现贪心的做法会把右边原创 2017-08-20 16:04:43 · 400 阅读 · 0 评论 -
HDU 6097 Mindis【计算几何+反演点】
题目链接题意:有一个圆心在原点,半径为rr的圆,圆内有两点PP,QQ到圆心的距离相同,在圆上找一点DD,使|DP|+|DQ||DP|+|DQ|最小。求这个最小值。当然不是直接取中垂线这么简单啊…… 反演点: 已知圆OO的半径为RR,从圆心OO出发任作一射线,在射线上任取两点M,NM,N。若|OM|=m|OM|=m,|ON|=n|ON|=n,且m∗n=R2m*n=R^2,则称点M,NM,N是原创 2017-08-22 21:32:35 · 398 阅读 · 0 评论 -
HDU 6178 Monkeys【DFS+输入输出外挂】
题目链接题意:给一棵树,有N个节点,树上有K个猴子,每个节点最多有一个猴子,从树上的边中去掉一些边,留下尽可能少的边使得每个猴子都至少和一个其他猴子相连,求最少留的边数。DFS,类似于一个简单的树形DP,从叶子节点往根节点找,如果没有相连的就相连,如果有就继续向上找。这样搜完以后得到的结果是最多有几对猴子可以两两相连。然后判断如果能两两相连的猴子数比总的猴子少,那么剩下的只能和那些两两相连的连。如果原创 2017-08-24 21:06:48 · 425 阅读 · 0 评论 -
HDU 6198 number number number【找规律+矩阵快速幂】
题目链接题意:从含0的斐波那契数列中可重复的任取K个数,求这K个数的和无法形成的最小整数。写了几个之后大胆的猜测ii的答案是F[2∗(i+1)+1]−1F[2*(i+1)+1]-1… 于是矩阵快速幂……#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=998244353;struct Mat原创 2017-09-10 21:54:17 · 377 阅读 · 0 评论 -
OpenCV之Canny算子边缘检测
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/opencv.hpp>using namespace cv;int CurrentValue = 0;int main(int argc,char ** argv){ Mat srcImage; srcI原创 2017-09-01 08:37:02 · 284 阅读 · 0 评论 -
HDU 6158 The Designer【计算几何+笛卡尔定理+韦达定理】
题目链接题意:照着图一个个的摆n个小圆,求小圆的总面积。首先很容易得到第一个圆的半径,然后用笛卡尔定理导出4个圆半径的关系。 笛卡尔定理: 若平面上四个半径为r1r_1、r2r_2、r3r_3、r4r_4的圆两两相切于不同点,则其半径满足以下结论: (1)若四圆两两外切,则∑4i=11ri=2∑4i=11r2i\sum_{i=1}^{4}\frac{1}{r_i}=2\sum_{i=原创 2017-08-23 21:53:59 · 431 阅读 · 0 评论 -
OpenCV之鼠标响应事件
#include <opencv2/opencv.hpp>#include <opencv2/opencv_modules.hpp>#include <opencv2/highgui/highgui.hpp>#include <cstdio>using namespace cv;Mat org,dst,img,tmp;void on_mouse(int event,int x,int y,i原创 2017-09-01 10:45:32 · 433 阅读 · 0 评论 -
牛客网多校第九场 H Prefix Sum【分块】
题目链接题意:a[0]a[0]a[0] ~ a[k]a[k]a[k],一开始a[0]a[0]a[0]全为000,且无论何时a[i][1]=a[i−1][1](i>=1)a[i][1]=a[i−1][1](i>=1)a[i][1]=a[i-1][1](i>=1),a[i][j]=a[i][j−1]+a[i−1][j](j>=2)a[i][j]=a[i][j−1]+a[i−1][...原创 2018-08-24 14:59:08 · 244 阅读 · 0 评论 -
Mac下使用PyInstaller打包PyQt5
1. Mac下使用PyInstaller打包PyQt5文件pyinstaller --windowed --onefile --clean --noconfirm demo.pypyinstaller --clean --noconfirm --windowed --onefile demo.spec这样打包后的应用程序在/dist/****.app目录下 或者:pyins...原创 2018-04-03 23:35:05 · 9389 阅读 · 6 评论 -
HDU 5738 Eureka 【共线点集】
题目链接题意:给出n个点,每个集合中至少存在两个点,且他们都共线,问一共有多少个这样的集合。对于在同一个位置上的k个点,在这个位置上能产生的集合数为2k−k−12k−k−12^k-k-1对于其他的点,遍历每个点,再遍历其他点,计算出斜率。对于每个相同的斜率,是在这个点位置上至少取一个点,再在其他点上至少取一个点。设这个点上有p个点,其他共有q个点对应于这个点能产生这个斜率,则此时ans...原创 2018-07-04 20:47:24 · 225 阅读 · 0 评论 -
HDU 4879 ZCC loves march 【map+set+并查集】
题目链接题意:在矩阵中有n个点,现有两种操作。Q x表示把x这个点所在行以及所在列的所有点都并到这个点上,并输出所有点移动距离的平方和。另外就是把某个点向某个方向移动若干位。用两个map<ll,set<ll>>map<ll,set<ll>>map 分别存每行中点的集合和每列中点的集合,再用并查集的根节点存每个点所在的集合。#inclu...原创 2018-07-05 20:59:17 · 154 阅读 · 0 评论 -
HDU 6356 Glad You Came 【st表】
题目链接题意:n个数,通过一个算法和生成器X,Y,Z生成m组更新。每次将[l,r][l,r][l, r]中小于v的数更新为v。 求m次更新后(1∗a[1])⊕(2∗a[2])⊕...⊕(n∗a[n])(1∗a[1])⊕(2∗a[2])⊕...⊕(n∗a[n])(1*a[1])\oplus(2*a[2])\oplus ... \oplus(n*a[n])的值。其中⊕⊕\oplus为异或。题...原创 2018-08-10 19:58:25 · 170 阅读 · 0 评论