
OJ题
嘘……一只bug
逆风的方向更适合飞翔,我不怕千万人阻挡只怕自己投降
——五月天《倔强》
展开
-
Poj 3667 Hotel(线段树)
题目链接思路用线段树维护三个最值ms:在区间中连续最大的空房间数量ls::在区间中左边连续的最大空房间的数量rs:在区间中右边连续的嘴阀空房间的数量query在询问的过程中,优先判断左儿子的空房间数量ms是否满足条件,这样能保证如果存在答案,答案总是最靠左的update基本和带修的线段树的update函数一样代码//#pragma GCC optimize(2)//#include<bits/stdc++.h>#include<cstdio>#in原创 2021-02-01 18:09:19 · 158 阅读 · 0 评论 -
Tunnel Warefare(线段树)
Tunnel Warefare题意可以理解为开始的时候有一条链,有三种操作:1、D n :将链从位置n的地方断开2、R : 将上一个断开的位置接上3、Q n:包含位置n的最大连续链的长度题解因为是写的线段树的专题,而且看操作明显也是线段树,但是想了好久也没有想明白用线段树维护什么,看了其他大佬的博客才顿悟。线段树的节点需要维护三个变量maxx:该区间内最大的连续链的长度lmax:从左端点开始往右扩展的最大连续的长度rmax:从右端点开始往左扩展的最大连续的长度具体的解释.原创 2020-12-02 14:52:34 · 236 阅读 · 0 评论 -
POJ Map Labeler(2-Sat)
Map Labeler题意有一些点,现在要对每个点构建一个正方形,这个点可以作为此正方形的上边界的中点或者是下边界的中点,对每个点构建的正方形的边长是相等的,要求构建的这些正方形不可以重叠,但是边界可以重叠,求可以构建的正方形的最大边长是多少?题解对于一个点,要么向上构建正方形,要么向下构建正方形,只有两种情况,二分答案,用2-Sat判断是否满足。2-Sat最关键的也是最难的就是建图了:对于点i,x是向上构建,x^1是向下构建。点j对于y雷同,尝试当前边长m1.如果abs(Xi-Xj)>.原创 2020-11-17 21:09:45 · 192 阅读 · 0 评论 -
HDU Bit Magic (2-Sat)
Bit Magic题意已知一位数组a[]和二维数组b[][]满足以下关系给定数组b[][],问是否存在数组a[],如果存在,输出"YES",否则输出"NO"题解写的是2-Sat的专题,想了好久都没想到怎么和2-Sat扯上关系,后来看了题解,说是按位进行2-Sat,就知道要怎么做了。因为位数最多不超过31位i,我一开始想的是从数组b[][]中找到条件,对这31位综合起来只进行一次2-Sat,后来T掉了,但是想了想复杂度是不会T的,现在还想不明白。后来只好对每一位建图,对每一位进行一次2-Sat.原创 2020-11-17 09:14:58 · 153 阅读 · 0 评论 -
Poj Wall(凸包)
Wall题意已知一个多边形的城堡,现在用用最少的石头建造环绕城堡的城墙,但是城墙不能离城堡超过一定的距离L。问这个城墙最小的长度。思路首先知道,对于一条边,我们只需将它往外平移L个长度即可,至于顶点肯定做一个半径为L的圆(一部分)将两边连接起来,如果该顶点是一个凹点,那肯定没有将两边的点直接相连短,所以需要先构造凸包(如果不知道为什么要构造凸包,可以画一下,很好看出来)。至于圆弧的那部分,需要计算角度,容易知道图中角度1和角度2互补,先将角度2利用点乘公式(不能用叉乘,因为用asin函数一个值对应.原创 2020-10-22 17:53:43 · 206 阅读 · 0 评论 -
POJ A Round Peg in a Ground Hole (几何)
A Round Peg in a Ground Hole题意有一个多边形和一个圆,如果多边形不是凸多边形的话输出“HOLE IS ILL-FORMED”;如果圆在多边形内部则输出“PEG WILL FIT”,否则输出“PEG WILL NOT FIT”。思路先对多边形的顶点极角排序,用叉乘判断多边形是否是凸多边形。然后用叉乘判断圆心是否在多边形内,如果是的话,求出圆心到多边形每条边的距离与半径作比较,进而得出答案。 #pragma GCC optimize(2)//#include<b.原创 2020-10-21 09:31:14 · 93 阅读 · 0 评论 -
POJ Line of Sight (几何)
Line of Sight题意在房子和人行道之间有若干障碍物,它们都是用线段表示的,且都平行于x轴,问在人行道上能看到整个房子的最大连续长度是多少?思路数据中有障碍物不在房子和人行道之间的情况,这种情况不用考虑。这道题直接求答案不好求,我们可以逆着思考,先把由每个障碍物挡住的连续区间求出来,然后在总的人行道上找出没有被这些区间覆盖的最长的连续区间就是答案了。求一个障碍物挡住的区间:代码#pragma GCC optimize(2)//#include<bits/stdc++.h&.原创 2020-10-21 09:08:08 · 209 阅读 · 0 评论 -
POJ Pipe (几何)
Pipe题意有一个弯形的管道,给出每个上拐点的坐标,起点和终点也视为拐点。下拐点的y坐标是上拐点y坐标-1,x坐标不变,问从管道的左端点射出一条光线,光线能够到达的最远的x坐标是多少?思路这道题我考虑了极限法,即最远的光线一定经过两个拐点(可能都是上拐点,或者都是下拐点,也可能一个上拐点一个下拐点,当然最远的光线不止一条,但肯定有一条经过两个拐点,可以平移得到),然后枚举两个拐点构成的直线,判断是否合法,如果合法求它能到达的最远的x坐标。如何判断该直线是否与管道相交呢?我是求出相应的y坐标与上下拐.原创 2020-10-19 12:23:18 · 195 阅读 · 0 评论 -
Poj Kadj Squares (几何)
Kadj Squares题意给N个正方形的边长,沿着左下顶点逆时针旋转45度放置,此时一顶点在x轴上。第一个正方形的一顶点在y轴上,从左向右一次放置,允许边重合但不允许面积相交,求那些正方形从上往下看时可以被看到。思路一开始我是先求出来b的坐标,进而知道左右端点的坐标,然后判断举矩形是否被覆盖,不知道是写错了还是被卡了精度。后来发现我们可以将边长扩大2\sqrt 22倍,这时求的左右端点就都是整数了。然后根据左右端点判断是否被覆盖即可。代码#pragma GCC optimize(2)/.原创 2020-10-08 16:06:08 · 155 阅读 · 0 评论 -
浙江省赛 CONTINUE...? (思维)
CONTINUE…? 题意班里有N名同学,编号为1、2、3……N,第i名同学有i个宝石。让我们将这N名学生分成G1,G2,G3,G4四个组,且满足以下规则每一个同学仅且只能分到一个组女同学只能分到G1或者G2组,男同学只能分到G3或者G4组 (这N个同学的性别会以字符串的形式给出,‘1’表示男同学,‘0’表示女同学)G1+G3的宝石数量等于G2+G4的宝石数量允许有一个组为空问这N个同学各自分到了那一组,如果答案有多种,随意输出一种即可。思路我们先考虑不可能的情况, 假设:.原创 2020-10-03 20:10:26 · 155 阅读 · 0 评论 -
POJ The Doors (构图+最短路)
The Doors思路这个题最难的就是建图了,建图之后求个最短路也就出来了,说下我的建图方法,首先我用pos[ ] 数组将起点和终点以及每个墙线段的端点作为图的顶点(去除墙根的两个点,因为没有意义)。然后用 seg[][]数组表示每个墙的各个线段的信息,seg[i][] 表示第i个墙的信息,这个数组的目的主要是为了:遍历pos[]数组的每两个点判断是否能建边,如果这两个点形成的线段被之间的墙挡住了(与该墙中某一个线段相交),就无法建边,否则建边。这里我再说一下判断线段a-b和c-d是否相交如何判断.原创 2020-09-28 10:15:53 · 141 阅读 · 0 评论 -
Poj Intersecting Lines (求直线交点)
思路有两个公式1.已知两点坐标(x1,y1,),(x2,y2).求直线方程(一般形式)Ax+By+C=0Ax+By+C=0Ax+By+C=0A=y2−y1,B=x1−x2,C=x2∗y1−x1∗y2A=y2-y1,B=x1-x2,C=x2*y1-x1*y2A=y2−y1,B=x1−x2,C=x2∗y1−x1∗y22.已知两直线方程(一般形式)A1x+B1y+C1=0A_1x+B_1y+C_1=0A1x+B1y+C1=0A2x+B2y+C2=0A_2x+B_2y+C_2=0A2x+B2.原创 2020-09-25 16:14:14 · 131 阅读 · 0 评论 -
Poj Segments (用叉乘判断线段相交)
Segments题意给出一些线段,问是否存在一条直线,使得这些线段在该直线上的投影有公共点思路我看一个大神的博客后,才知道该问题可以转化为是否存在一条直线m与所有的线段相交,与m垂直的直线l就是所求的直线。我们可以枚举两个线段的端点两两组合( 两个端点取自不同的线段),作为直线m的一个线段(实际上因为所给的线段是有限的,所以如果存在直线m的话,完全可以取该直线的一段与给定的所有线段相交),为什么我们枚举两个不同线段的两个端点所形成的直线就可以呢?假设这条直线存在,我们总是可以将该直线平行移动,直.原创 2020-09-24 20:25:11 · 239 阅读 · 0 评论 -
HDU 1506 Largest Rectangle in a Histogram 单调栈
题意求直方图最大矩形的面积思路这个题和Passing the Message思路差不多(用单调递减栈维护区间最小值逐渐更新答案。本题是用单调递增栈维护区间最大值逐渐更新答案,用resl[i]记录左边比hei[i]大(含等于)的值的最小下标。遍历到hei[i]的时候,如果栈顶的元素比hei[i]大,就将res[Q.top()]的值更新resl[i], 然后出栈,如果栈顶的值比hei[i]小,就直接入栈。然后再求resr[]数组。resr[i]存的是在i的右边比他大的值的最大下标。代码#prag.原创 2020-09-23 09:54:39 · 102 阅读 · 0 评论 -
HDU Passing the Message 单调栈
Passing the Message题意给出一组数,求每一个数左边(和右边)连续比他小的数中最大的数的位置。思路我们先考虑如何求它的左边连续比它小的数中最大数的位置,这就用到一种简单的数据结构了——单调栈单调栈:单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减),这里我们要用到是单调递减栈(即从栈底到栈顶下标是递增的,但是数据是递减的)顺便说一下,单调递增栈(从栈底到栈顶下标是递增的,但是数据也是递增的)。原理的话看完代码你品你细品.原创 2020-09-22 20:00:14 · 121 阅读 · 0 评论 -
HDU Max Sum of Max-K-sub-sequence 单调队列
Max Sum of Max-K-sub-sequence题意给出一个有N个数字(N<=10^5)的环状序列,让你求一个和最大的连续子序列。这个连续子序列的长度小于等于K。思路借鉴的这位大佬的博客看完思路,结果敲WA了。 然后看了看大佬的代码后有一点不是很理解,遍历的是i,为什么将对sum[i-1]进行操作,最后求tmp的时候,又用到了sum[i], 后来想明白了。假如遍历到了i,用单调队列维护的是区间[sum[i−k],sum[i+1−k]...,sum[i−1]][sum[..原创 2020-09-22 16:18:37 · 163 阅读 · 0 评论 -
2020 CCPC网络选拔赛 3x3 Convolution
题意这个题我估计很多人都是卡到题意上了,妈的,公式一大堆。给一个N*N的矩阵和3∗33*33∗3的矩阵,起初给的3∗33*33∗3矩阵是K’,要想转换为K,只需将对应元素/矩阵元素的总和。定义矩阵C(A,K)=C(C[A][K],K)C(A,K)=C(C[A][K],K)C(A,K)=C(C[A][K],K)C[A][K]C[A][K]C[A][K]是这样计算的:以A[i][j]A[i][j]A[i][j]作为3∗33*33∗3矩阵的左上角,往右下扩展成3∗33*33∗3的一个矩阵,如果出边界了,默.原创 2020-09-21 09:22:23 · 303 阅读 · 2 评论 -
HDU-1937 Finding Seats 二维尺取法
Finding Seats题意找一个长方形,长方形中中的座位数量需要大于等于K,求满足条件的最小的长方形的面积思路原先想的是暴力加上剪枝,但是最坏复杂度还是1e8,果断T了。之后想到尺取法,只不过这种尺取法是二维的,只要稍加处理还是很好写的。我们遍历长方形的上下界,然后尺取的求满足条件的最优解。图中i指向长方形的上边界,j指向下边界。l,r指向的都是列,当r右移的时候sum+=3,当l右移的时候sum-=1,根据sum和K的大小比较确定l,r的移动方向当sum<K时,将r右移,否则,将.原创 2020-09-19 08:16:21 · 311 阅读 · 0 评论 -
HDU First One 尺取法
题意有一个整数数组a1,a2,a3,...ana_1,a_2,a_3,...a_na1,a2,a3,...an,定义S(i,j)=ai+ai+1+ai+2+...+ajS(i,j)=a_i+a_{i+1}+a_{i+2}+...+a_jS(i,j)=ai+ai+1+ai+2+...+aj求∑i=1n∑j=in(⌊log2S(i,j)⌋+1)∗(i+j)\sum_{i=1}^n\sum_{j=i}^n(\lfloor log_2S(i,j)\rfloor+1)*(i+j)∑i=1n∑.原创 2020-09-18 16:01:55 · 193 阅读 · 0 评论 -
Vjudge Bound Found 尺取法的好题
题目链接Bound Found题意有N个整数数,可负可正。给一个数t,然后从这N个数中找一个连续的区间,使得这个连续区间和的绝对值最接近t,求出这个连续区间和的绝对值和以及区间的上下界。思路尺取法顾名思义,像尺子一样取一段,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。什么时候可以使用尺取法?我自己的理解是:答案在一段连续的区间内或者是一段连续的区间(可能有多个区间满足情况,题目要求你求出一个最优的区间),一般区间都是从数组的左端原创 2020-09-16 20:30:13 · 197 阅读 · 0 评论 -
HDU 5356 序列变换
思路这个题是最长上升子序列的变形版本,要保证严格递增,需要满足a[j]−a[i]>j−ia[j]-a[i]>j-ia[j]−a[i]>j−i,化简得a[j]−j>a[i]−ia[j]-j>a[i]-ia[j]−j>a[i]−i,所以我们只需要求得序列b的LIS即可(b[i]=a[i]−ib[i]=a[i]-ib[i]=a[i]−i)代码#pragma GCC optimize(2)#include<bits/stdc++.h>using na.原创 2020-09-14 22:28:29 · 176 阅读 · 0 评论 -
HDU 5646 DZY Loves Partition 数学
题意:给定N和K,将N划分成K个不同的正整数,使得这K个数的乘积最大思路要使得乘积最大,这K个数一定是相对连续的。具体点就是将N划分为一段连续的序列,如果有余数,就平均分配给序列后面的数(别问为啥,问就不知道)比如30 6划分为 2 3 4 6 7 8变形题目中如果没有K和不同的限制的话,即是将N划分为一些正整数,求这些数最大化乘积。思路首先把一个正整数N拆分成若干个正整数,肯定有有限种拆法,所以存在最大乘积,假设N=n1+n2+n3+……+nkN=n_1+n_2+n_3+……+n_.原创 2020-09-14 10:13:41 · 191 阅读 · 0 评论 -
Distinct Substrings(后缀数组)
题意求一个字符串的不同子串数量思路该字符串的所有后缀子串的前缀子串即为改字符串的所有子串数量。总的子串数量=len*(len+1)/2,那么重复的子串如何求呢?即为height数组的总和,对排名相邻两个的后缀,他们的重复前缀的前缀都是重复的,raokou~如排名为1,2的后缀子串1 a a a a b2 a a a b最长公共前缀的长度是3该公共前缀的前缀a a a a a a在1 2 中重复出现,故减去#pragma GCC optimize(2)#includ原创 2020-07-29 21:51:51 · 371 阅读 · 0 评论 -
POJ Milk Patterns(后缀数组和二分)
这个题和昨天写的Musical Theme基本一样,那篇博客有后缀数组的学习,如果那个题没有写过的话,搞完了这个题可以去做一下。题意显然就是求最长可重复子串的长度,但是该子串重复的次数需不小于K。思路先求后缀树组,而后利用后缀树组求height数组(height[i]:存储排名为i和i-1的后缀子串的最长重复前缀子串长度 )。把排序后的后缀分成若干组,其中每组的后缀之间的height值都不小于k。例如,字符串为“aabaaaab”,当k=2时,后缀分成了4组如图所示可以想到当一组内的height都原创 2020-07-29 10:25:12 · 144 阅读 · 0 评论 -
POJ 1743 Musical Theme(后缀数组学习+该题解法)
题意:有N个音符组成的一首乐曲,每个音符是一个1~88的整数,现在要找一个最长的主题,即是该音符序列的一个子串,主题还要满足以下三个条件:1.最少由五个音符组成2.该主题在乐曲中出现最少两次(两个主题不一定要一模一样,只要一个可以由另个一转置得到即视为同一种主题,转置:主题序列中的每一个字符都被加上或者减去了同一个数字)3.每两个主题不可有重叠的部分如果没有装置这个要求的话,很显然是求不可重叠最长重复子串,用后缀数组就可以做,但是我们观察转置的定义,经过一些处理可以将题目化为不可重复最长重复子串。假设一原创 2020-07-28 22:10:33 · 333 阅读 · 0 评论 -
P4447 [AHOI2018初中组]分组
实在想不出来,就看了题解这位大牛的题解我拜读是ZgZhIWn的博文,看了他的思路,技巧性太强了,除了佩服还能说些什么呢卧槽,这也太妙了 看了这篇题解之后我有两个疑问:1 :在P数组中,为什么具有相同的下一个成员的实力值,下标越大,组的长度越小呢?也就是有p[i]==p[j] (i<j)为什么有siz[i]>=siz[j]呢答:我想了想,然后找了实例手动跑了一下,原因就在我们将f...原创 2020-04-30 19:18:33 · 370 阅读 · 0 评论 -
消灭兔子&&最高的奖励
最高的奖励消灭兔子最高的奖励题解:贪心+优先队列,将任务按照最晚时间从小到大排序,从最后一天向前遍历,将这一天可以完成的任务加入队列中,用优先队列维护奖励最大的哪一个#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long ll;#define pi acos...原创 2020-04-16 08:47:17 · 160 阅读 · 0 评论 -
HDU Stones
题目链接题意:从左向右给出一些石头,每个石头有两个属性,Pi是石头的坐标,Di是可移动的距离。小明开始在最左边的第一块石头处,当遇到奇数块石头时,他将这块石头向右扔出Di的距离,遇到偶数时候则不做任何操作。注意在某一个坐标处可能有多块石头,此时他最先遇到是Di值最小的那个。思路:几乎是优先队列的裸题了#pragma GCC optimize(2)#include<bits/stdc+...原创 2020-04-15 21:01:40 · 179 阅读 · 0 评论 -
Dragon Balls
题目传送题目描述Dragon BallsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9666 Accepted Submission(s): 3491Problem Description Five hundred yea...原创 2020-03-11 23:04:26 · 330 阅读 · 0 评论 -
洛谷P2921
刚看到这道题的时候,没有在意复杂度,就直接暴力了,我也真是憨了,这可是提高省选组的题……后来看看算法标签说是记忆化搜索,再仔细看看题,这不就是每个顶点出度只有一的有向图嘛,包括自环,且是多个连通块,然后,每一个顶点停止遍历的时候一定是进入了一个环内或者自身是某个环的一部分,否则遍历是不会停止的,那么所有的数据应该类似这种情况接下来咋搞呢?想半天也没有整明白,写了一个假算法,理论上是没问题的...原创 2019-12-20 23:43:28 · 190 阅读 · 0 评论 -
Line-line Intersection
题意:给了N条线(注意这些线有可能重合),问两条直线有交点的对数,1 3和3 1 属于同一对,两条直线重合也算有交点解题思路:这道题有些细节是很恶心的 因为怕卡精度,所以直接用了pair存,用map套一个pair存储斜率,但是只存储斜率是不行的,因为直线有重合的情况,所以还得用map套两个pair存储k和b。y=kx+b{k=(y1-y2)/(x1-x2),b=(x2y1-x1y2)/(x2-x...原创 2019-11-18 20:05:23 · 1093 阅读 · 0 评论 -
Minimum Spanning Tree
题意:有一棵边带有权值的树,定义线图:将这颗树的每一条边缩成一个点,这个点的点权为原先的边权,当原先树中两条边有公用的节点时,则线图中缩成的两个点有边相连,且边的权值为这两个点的点权之和。求形成的线图的最小生成树。解题思路:你会发现在原先的树中,父节点和他紧邻的所有子节点形成的线图是一个完全图,而这个完全图的最小生成树只需将其他点和点权最小的点连接起来就可以了。看懂下面这个图就好理解代码了发...原创 2019-11-18 19:39:06 · 150 阅读 · 0 评论 -
HDU Traffic
题意是这样的:在一个十字路口,有N辆车是东西通行的,有M辆车是南北通行的,并且给你每辆车通过的十字路口的时刻表,当东西通行的车和南北同行的车同时通过十字路口的话就会发生碰撞,现在要求东西通行的时刻表不变,南北通行的车辆要集体最少等待多少时间才能不发生碰撞一开始题读错了,忽略了集体等待,好吧,其实是我太菜#pragma GCC optimize(2)#include<bits/stdc++...原创 2019-11-13 21:43:14 · 138 阅读 · 0 评论 -
HDU Wave
我们发现这道题的C很小,所以得从这方面下手,把这些数依据奇偶性划分成两个集合,并且把每一个数在序列中出现的位置记录下来,我们暴力尝试每一个奇数和偶数构成的Wave,最后取一个最大值就行了,每一次尝试过程是这样的的比如:N8 C2 2 1 1 2 2 1 2 11的位置:2 3 6 8 2的位置有:1 4 5 7位置最小的是2中的1,然后在1中找第一个大于1的位置,此时是2,...原创 2019-11-13 09:27:25 · 146 阅读 · 0 评论 -
洛谷P1330 封锁阳光大学
按照题意,每个顶点要不放河蟹,要不不放河蟹,而且相连的顶点不能具有相同的状态。因此我们可以将其抽象成二分图,即两种相连的顶点不能染成相同的颜色,对于每一个连通图,我们使用两种颜色通过DFS将其染色,只要有一个连通图不能染色成功,就直接得到结果“NO”,因为题中可能含有多个连通图,对第i个连通图,我用2i和2i+1表示两种颜色,这个连通图放的河蟹数就是用这两种颜色染成的顶点数最小的那种颜色的数量,即...原创 2019-11-11 19:20:55 · 134 阅读 · 0 评论 -
洛谷P2661 信息传递
1这使我意识到提高组有些题难就难在他的算法标签是隐晦的,读完题,感觉除了暴力就没有其他想法了……看了题解,才知道原来是求有向图中最小的环,仔细想想还真是的#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;#define pi acos(-1.0)#define e exp(1.0)type...原创 2019-11-09 22:44:15 · 131 阅读 · 0 评论 -
牛客 乘法师
1非负包括0啊,开始没考虑到,直接把整个数组当成一个区间来求了 ,还迟迟找不着Bug,我真是越来越憨了……先考虑一个区间不包括0的情况,比如N=7 V=9 Ai依次是2 2 2 8 1 1 2 起初pre=1;nex=1;mul=1;以pre为起点,让nex往后移动,并更新mul*=a[nex];直到mul>=V;说明nex及其之后的下标都可以,cnt+=4,此时nex4;mul64,之后...原创 2019-10-31 08:27:09 · 245 阅读 · 0 评论 -
南京区域赛J Prime Game
1 话说这是区域赛的签到题??我滴神……看了这位大牛的博客才明白,写的真好传送2附上额的代码#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;#define pi acos(-1.0)#define e exp(1.0)typedef long long ll;const ll ma...原创 2019-10-30 23:03:13 · 160 阅读 · 0 评论 -
洛谷P1134 阶乘问题
1 数论真是奇妙的东东……写过:求N!后面有多少个0这个问题Coder可能多少会有点想法,我再说一下吧,能贡献0的只有25,(10也可以分成210),而2个数不少于5的个数(事实上只有N==1时才取等于)所以只需要对1~N之间的个数(包含)进行整数分解,累加因子为5的个数,代码可以写成这样int sum=0;while(N){ sum+=(N/5); N/=5;)1 1~N中显然...原创 2019-10-28 22:45:32 · 142 阅读 · 0 评论 -
P1414 又是毕业季II
1首先你要知道,N个数的最大GCD就是这N个数共同约数中最大的那个,用Map将一个约数出现的次数存起来(次数即为有多少个数中有着个约数),对每个数约数枚举,结果放到Map里面,最后输出的时候,倒着找符合条件的约数即可,最后一点很重要,就是N越大,他的最大GCD会越小,所以复杂度是远远小于N*(Map.size())的#pragma GCC optimize(2)#include<bits...原创 2019-10-28 17:50:34 · 110 阅读 · 0 评论