自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 【无标题】

2021-12-05 18:03:49 200

原创 A Angle Beats(三角形计数)

传送门:QAQ题意:给你n个点,然后有q次询问一个点,询问能和这n个点组成多少个直角三角形。2≤n≤2000,1≤q≤2000思路:首先回想到分类讨论,询问点作为直角点和不为直角点,然后就会想到存斜率,利用直角斜率的性质去计数。果然第一发map+pair tle了,常数太大,外加自己处理太粗糙。上网查题解时,发现存在两种做法,一种就是用unorder_map或者自己has...

2019-11-15 10:43:28 384

原创 Bless You Autocorrect!(字典树上建图)

传送门:QAQ题意:实现一个单词补全功能的最小操作步数思路:对于读入的单词表,我们可以预处理出到达每个前缀所需要的最小步数,这我们可以实现建立一颗字典树,然后在字典树上跑bfs即可。预处理完后,我们对于读入的单词,只要遍历它的每个前缀统计最小次数即可。附上代码:#include<cstdio>#include<cstring>#include&...

2019-11-15 10:32:36 187

原创 HDU 6685(枚举+dp)

传送门:QAQ题意:有10,20,50,100的纸币,问你买下一堆物品的任意一个至少要有多少张纸币。思路:因为10,20,20,50就能涵盖100以内所有的数,所以实际上我们只要枚举每张纸币的数量(这里要确保每种情况都能枚举到,所以要好好选枚举的每张纸币的数量),然后简单dpcheck即可(我们要确定一个数值最多要用几张100,因为枚举的纸币也可能组成100,所以注意这个即可)。附上代...

2019-09-22 15:48:06 194

原创 The Designer HDU - 6158 (圆的反演)

题意:给你两个内切圆的半径,然后在两个圆之间放n个圆,这n个圆的面积是多少。思路:学习完圆的反演后,这道题就变得很轻松了,设两个内切圆的切点为反演中心,这样两个圆就会反演成两条直线,n个小院反演成相同大小的圆切于两条直线中,然后依次计算每个小圆的面积即可,注意精度。附上代码:#include <iostream>#include <algorithm&...

2019-08-28 11:07:35 161

原创 2019牛客暑期多校训练营(第五场)E independent set 1(dp)

题意:给你一个n个点的无向图,让你找出所有子图的最大独立集的大小和思路:我们考虑枚举一个点是否加入最大独立集,如果加入最大独立集,就要在原本的独立集中删去这个点连接的其他所有点,如果不加入,直接不加入原本的最大独立集即可。所以我们对于每一个状态i,我们枚举最后一个在独立集中的点(枚举每一个点的结果都是一样的,因为当前的状态确定了,加上这个点之前的点数是唯一的),状态转移为 ...

2019-08-25 14:29:14 164

原创 2019牛客暑期多校训练营(第五场)C generator 2(bsgs)

题意:给你一个递推式,然后你会得到一场长度为n的序列,然后给你一个数,让你找出序列中最小下标的数等于这个数。思路:bsgs算法的基本应用我们可以发现该数列的递推式可以化简成如下的形式我们就可把右边当成一个整体,因为p的大小为1e9+9,所以我们可以选择将n分解成x1*1001-x2,x1<=1000000;这样我们就可以预处理x1*1001的值,然后在每次询问时枚举...

2019-08-25 12:05:59 105

原创 2019牛客暑期多校训练营(第五场)B generator 1

题意:给你一个递推式,让你求出第n项思路:很明显的矩阵快速幂,但是我们该选择怎么加速矩阵快速幂呢,我们采用10进制进行快速幂,就相当与每次缩小了运算的范围。(这道题卡的很紧,我在场上本来是倒着来的,这样就没有办法预处理出每位的快速幂,导致t到哭),没想到题解就是正向的来,预处理出每位即可。附上代码:#include<cstdio>#include&lt...

2019-08-24 14:40:05 97

原创 hdu 6705 path

题意:一场有向图,询问你第k小的路为多长思路:首先我们知道所有样例的k的最大值的和为250000,这样我们每次只要暴力的预处理出每条路(注意这里要离线处理,不然每次处理50000会爆炸),然后输出即可。有个坑点就是不能一次将一个点连的所有的边都更新,这样可能会导致mle(因为可能这个点连了所有的点),我们只要控制每次点更新的边数大小,一种方法就是每次更新只加入下一条最小的边和当前边的...

2019-08-24 11:36:45 420

原创 hdu 6704 K-th occurrence(后缀数组+st+主席树)

题意:给你一个字符串,然后有1e5的询问,每次给你一个子串的起始位置和结束位置,询问该子串的第K次出现位置思路:首先询问许多子串的这种问题应该联想到后缀数组,然后我们发现对于后缀数组中的排序(sa[i]表示下标为i的后缀的排名,rk[i]表示排名为i的后缀的下标),每个后缀串与子串的最长公共前缀为该子串的串是连续的,所以我们只要求出这段连续排名的区间(因为在这里的对于子串的最长公共前缀具...

2019-08-24 11:28:55 929

原创 2019牛客暑期多校训练营(第一场)

A B CE FH I J 已补 D G未补A.Equivalent Prefixes赛场上n^2过掉,简直不可思议。正确的解法就是维护当前这对数能影响的左右位置的区间范围。这可以用笛卡尔树或者单调栈实现。笛卡尔树版:#include <iostream>#include <map>#include <cstring>#inclu...

2019-07-22 11:52:20 132

原创 poj 3621 Sightseeing Cows(最优比率环)

传送门:QAQ题意:每个点都有兴趣值,每条边都有花费时间,让你找出一个环,环上的兴趣值和除以总时间和最大,问你最大的值是多少。思路:很明显,只要你会01分数规划,你就会发现这个只是将check的变在了图上,所以我们列出式子∑Fi-ans∑Ti<=0.然后我们二分ans,然后将图中的边变为Fi-ans*Ti,这样我们只要判断图中是否有正环就可以判断这个式子是否成立,但是这样...

2019-07-16 08:38:46 116

原创 Almost Regular Bracket Sequence(思维)

传送门:QAQ题意:让你改变序列的一个括号,让它成为合法的序列,问你总共有多少种方案思路:首先要知道当右括号的数量超过左括号的数量时,我们必须改这个位置,然后可能虽然存在你把前面改合法了,但是后面仍然是不合法的,所以我们既要知道该位置前面的状态和后面的状态,这里可以采用维护前缀和和后缀和数组,我在这里将后面的影响提到前面的位置,这样就可以正确的限制该位置的修改。附上代...

2019-07-14 10:10:25 315

原创 牛客小白月赛16 J-小雨坐地铁(建图+最短路)

传送门:QAQ题意:存在n个站台,m条地铁线,进入每条地铁线都有费用,每条地铁线的乘车费用也不相同,问你从起点站到终点站要最少花多少钱。思路:暴力建图的复杂度肯定不对,所以在这里我们对每个站都建立一个虚点,建立虚点到每条地铁线的边,然后在建立每条地铁线的分层图就可以将整个图建立完全,然后跑遍最短路即可。附上代码:#include<cstdio> ...

2019-07-13 18:32:03 194

原创 牛客小白月赛16 D-小阳买水果(前缀和+思维)

题意:找出连续区间和大于0的最大区间和长度思路:维护一个前缀和的优先队列,按前缀和从大到小排列,那么因为你每次后来取出的前缀和相等或者小于之前取出的前缀和,这样只用维护一个右端点更新区间最大长度即可。时间复杂度为O(nlogn)。思路正确,是最丑的一个写法,卡GUO。附上代码:#include<cstdio> ...

2019-07-13 10:03:40 164

原创 CCPC-Wannafly Winter Camp Day3 小清新数论*(莫比乌斯反演)

思路:依旧是简单的gcd,套路的用莫比乌斯反演即可,最后用整数分块优化下复杂度即可推公式先填坑#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<string>#include<iostream>#incl...

2019-04-23 20:22:06 117

原创 GCD HDU - 1695(莫比乌斯反演入门题)

思路:最基本的gcd的莫比乌斯反演推式子,突然感觉gcd的好像都差不多。还是很难将反演的两个式子灵活运用。推式子先留个坑,以后补。#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<string>#includ...

2019-04-22 17:57:10 217

原创 Angry FFF Party 南昌邀请赛(水)

思路:因为斐波那契数列是接近2的幂次增长的,所以我们可以推算出最大的f为28.然后我们只要跑出前28项,然后枚举28项即可。因为只有当n<=10时才存在多种情况,判断一下即可。list2=[]list1=[]def mul(a, b): c = [[0, 0], [0, 0]] for i in range(2): for j in...

2019-04-22 00:55:49 143

原创 Monitor HDU - 6514(二维差分)

有空再写题解,有问题可以交流#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#include<string>#include<iostream>#include<map>#include<vecto...

2019-04-21 22:57:38 115

原创 The Review Plan I ZOJ - 3687(容斥原理)

传送门:QAQ题意:n天完成n个任务,有m个限制,求总共有多少种完成任务方案思路:很明显是容斥的应用,但是很难推出容斥系数,鉴于限制条件只有25(瞎了,比赛的时候一直以为是50,傻傻的推公式),爆搜即可.附上代码:#include<cstdio>#include<cmath>#include<algorithm>#include<c...

2019-04-11 22:00:19 150

原创 Average Gym - 101161B(容斥原理+组合数学)

传送门:QAQ题意:给你n个评委,给你一个最高分,问你有多少种给分方案能使所有评委的平均分等于其中一个评委的分数(注意,每个评委都是独立的).思路:学过容斥的应该很容易可以解决a1+a2+a3+.....+an=n*avg(平均值)的不同解的个数,当ai>=0&&ai<=m时。那么,我们怎么解决存在平均分avg的评委的方案数呢。其实稍微想一...

2019-04-07 18:50:59 192

原创 Integral Polygons Gym - 101142I (计算几何+处理技巧)

传送门:QAQ题意:给你若干个整数点,问你有多少种两个顶点相连,可以将多边形分成两个部分,面积都是整数思路:首先我们将面积乘以2,用奇偶性来判断是否为整数,首先我们要清楚根据皮克定理可得,面积为偶数的多边形的边上的整点数肯定为偶数个,再清楚的是四种整点(奇偶,偶奇,奇奇,偶偶)之间出现的整点数的数量是有规律的,这样我们就可以把每个点变成这四种类型中的一种。那么设si为0-i三角形(S0...

2019-04-07 15:43:38 206

原创 Floating-Point Hazard Gym - 102091J(数学)

传送门:QAQ题意:就是给你一个式子,让你高精度求和。思路:真的太菜了,没想到就是根据求导的定义公式来就行。附上代码:#include&lt;cstdio&gt;#include&lt;cmath&gt;#include&lt;algorithm&gt;using namespace std;#define ll long longint main(v...

2019-03-10 20:17:18 571 4

原创 Lucky Pascal Triangle Gym - 102091F(分块+递归)

传送门:QAQ题意:给你一个n层的杨辉三角,让你求出里面7的倍数的个数有几个。n的数据范围为10^18,有10^5组数据思路:首先我们先打个表,然后把7的倍数都标记出来你会发现每个块内回有两种组成,一种是属于这个块的大块,另一个就是上个块。这样我们可以先预处理每个块里7的倍数的数量,然后根据给的行数去递归求解比如:如果我们要求198行杨辉三角的...

2019-03-10 13:35:15 745

原创 Jongmah CodeForces - 1110D (DP)

传送门:QAQ 题意;给你n个数,问你用这些数最多可以组成多少个长度为3的连续区间或者三个值相同的区间,每个数只能用一次。 思路:如果大于等于3个数的话,肯定是会被打掉的。然后我们确定dp方程设dp[i][j][k]:表示前i位里面有j个[i-1,i,i+1],k个[i,i+1,i+2]。方程为dp[i][k][t] = max(dp[i][k][t], dp[i - 1]...

2019-02-23 23:18:34 261

原创 Ball CodeForces - 12D (树状数组)

传送门:QAQ 题意:给你n个人,每个人有三个值,如果一个人的三个值都比另外一个人的三个值,她就会消失。问你会消失多少人。 思路:三维的比较大小,暴力肯定不行,所以我们选择降维并选择数据结构来优化。懒得写线段树,这里就用了树状数组。首先我们可以排序x值确定标号来降一维,比较剩下两个数时,我们只要再按y值从大到小排序时,看比x值大的里z值的最大值是否比当前的z值大,如果大的话...

2019-02-23 23:06:41 230

原创 Robots Gym - 101915G(搜索)

传送门:QAQ 题意:给你一棵树,每条边有权值,然后会给你几个带有权值的机器人从根节点出发,机器人会选择小于等于自己权值的最大的一条边,最后它会停在一个点上。问你所有机器人到达的点的和是多少。 思路:只要深搜即可,因为按权值降序的机器人选择的点符合dfs序,只要在dfs时判断当前点是否能停下即可,否则就是dfs序的下一个点。 代码:#include&lt;iostre...

2019-02-23 22:51:21 162

原创 Drazil and Tiles CodeForces - 516B (拓扑排序)

传送门:QAQ 题意:相邻两个点’ . ‘之间可以放&lt;,&gt;.问你将所有’.‘都覆盖,是否存在唯一的方法。 思路:简单的拓扑排序,选择相邻的空格为’.‘开始放,如果不存在这样的空格,就代表方法不止一种。 代码:#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;math.h&gt;#in...

2019-02-23 22:39:32 153

原创 How can I satisfy thee? Let me count the ways... ZOJ - 3025(后缀表达式+模拟)

传送门:QAQ 题意:给你一个表达式,然后给你几张表,让你枚举有多少种赋值方法能使答案为2. 思路:模拟一下中缀表达式转成后缀表达式,暴力枚举就行了。 代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&gt;#include&lt;stack&gt;#include&lt;a...

2019-02-23 22:35:10 88

原创 codeforces-1131D Gourmet choice(拓扑排序)

传送门:QAQ 题意:第一天有n道菜,第二天有m道菜,然后有n行,每i行的第j个代表第一天的第i个菜与第二天的第m个菜的关系(&gt;,&lt;,=)。让你这些菜的价值符合题目提出的要求,并且价值最小,让你输出是否存在,并且输出每个菜的价值 思路:如果没有=号,就是裸的拓扑排序,那么我们就要判断=带来的影响(两个相等的点之间存在大小关系,这可以用并查集,还有一个就是当前点的价值...

2019-02-23 22:22:35 301

原创 Maximal Intersection CodeForces - 1029C(贪心+multiset)

传送门:QAQ 题意:给你n个区间,问你删掉一个区间,最大的区间交。思路:区间交肯定是最小的右区间减去最大的左区间(或者不存在)multiset 可以记录重复还能排序。扔进去枚举一下就行了。 代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&gt;#include&lt;sta...

2019-02-22 17:46:16 98

原创 Choosing Capital for Treeland CodeForces - 219D(树形DP)

传送门:QAQ 题意:有n个点,有n-1条有向边,使一个点可以到达其他所有点,可以翻转边的方向,问你最少翻转的边数,可以使其中一个点到达其他所有点(就是令一个点为根节点),然后让你升序输出每个点为根节点所需的翻转边数 思路:进行两次dfs,第一次我们用dp[v] += dp[u] + dir[u];(u为v的子节点,dir指两个点之间边的代价)处理出每个点为根结点时,需要翻转的边的...

2019-02-22 17:37:04 92

原创 Tempter of the Bone HDU - 1010(搜索+剪枝)

传送门:QAQ 题意:问是否能在固定步数内到达终点 思路:简单的深搜,因为限定步数较少,加上奇偶路径判断即可(读入方式有点BUG,用%c一个个读就wa了)。 代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&gt;#include&lt;stack&gt;#include&l...

2019-02-22 16:59:27 87

原创 Pocket Cube HDU - 5983 (简单模拟)

传送门:QAQ 题意:两阶魔方能否一次还原 代码:#include&lt;stdio.h&gt;int ax[15][8];int bn[15][8];int check() { int fla=1; for (int i = 0; i &lt; 6; i++) { for (int z = 1; z &lt;= 4; z++) { ...

2019-02-22 16:51:38 125

原创 Rikka with Mutex HDU - 6261 (二分+贪心)

传送门:QAQ 题意:给你一串字符串,v代表一个人走过可以获得一点能量,p代表一个人走过消耗一点能量,然后能量是公用的,问你最少派多少个人能使一个人到达终点。 思路:二分我们要派的人,然后在我们检查人数是否可行时只要模拟一个人行走,如果走过去是有价值的,就让后面的人跟上,并怎加相应的价值。判断是否能走到终点即可。 代码:#include&lt;cstdio&gt;#...

2019-02-22 16:49:05 120

原创 Reward HDU - 2647(拓扑排序)

传送门:QAQ 题意:给你n个人,m个关系,关系是指一个人的奖励比一个人高,然后让你求最少的奖励金额。思路:如果存在环的话,就不可能,所以就是简单的一个拓扑排序。 代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&gt;#include&lt;stack&gt;#include&...

2019-02-22 16:42:09 94

原创 Graph And Its Complement CodeForces - 990D(构造)

传送门: QAQ 题意:   有n个点,然后告诉你它的无环图有a个联通块,它的补图有b个联通块。然后问你是否存在这样的图,并且输出其中一个方案。                                                                                                    思路:首先如果a&gt;=2的话,那么它...

2019-02-19 18:35:10 101

原创 Nature Reserve CodeForces - 1059D(二分+精度)

传送门:QAQ 题意:给你n个动物的坐标,让你画个圆将所有的动物包括在内并且与y轴相切,问你是否存在这样的圆,并输出最小的圆半径。 思路:很简单的二分形式,但是要怎么去检查这个半径是否可行呢。因为这个圆是和y轴相切的,所以对于每个点我们都可以算出圆心的x轴范围,然后记录一下是否有共用范围就行了。精度有点问题,突然发现浮点数运算的奥秘。代码:#include&lt;...

2019-02-19 18:10:59 191

原创 The Shortest Path in Nya Graph HDU - 4725(最短路+建图)

传送门:QAQ 题意:给你n个点,m条边,然后每个点在固定的层数上,相邻两层之间的点的花费为c,可以互通,然后让你求1-n的最小花费思路:网络流的建图思想,把每层拆成入层点和出层点,然后与每个点相连即可。最后跑普通的最短路就行了。 代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cstdlib&g...

2019-02-19 18:04:47 64

原创 True Liars POJ - 1417(并查集+DP)

传送门:QAQ 题意:告诉你有a个好人,b个坏人,然后有n句话,问你是否能从n句话中判断唯一一种情况,哪些是好人,哪些是坏人。让你输出好人,否则输出“no” 思路:首先如果一个人说一个人是好人,那他们的关系是相同的,如果一个人说一个人是坏人,那么他们关系是相反的。所以我们可以用带权并查集来维护有关系的人,那么一个集合中就有关系相同,关系相反的集合。然后再用dp去判断a个好人,b个坏...

2019-02-19 17:59:46 113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除