多校
Self-Discipline
在校大学生
展开
-
The 2018 ACM-ICPC China JiangSu Provincial Programming Contest I. T-shirt
题目:点击打开链接题意:有n天,一个人一天可以选择穿一种T恤,如果今天穿A,明天穿B,可以获得f[A][B]的快乐值,问这n天可以获得的最大快乐值。f为m*m的矩阵。(2≤N≤100000,1≤M≤100)分析:这题涉及到矩阵乘法以及快速幂,首先我们先利用dp来做dp[i][j][k]表示从i走到j,走k步的最大距离,那么转移就是dp[i][j][k] = max(dp[i][j...原创 2018-07-26 10:02:11 · 283 阅读 · 0 评论 -
hdu 6354 E. Everything Has Changed
题目:点击打开链接题意: 给你一个原点在(0,0),半径为R的圆盘以及m个小圆。第i个小圆的原点在(xi,yi),半径为ri。每个小圆可能会与大圆盘相交,现在问你m个小圆将大圆覆盖后的周长并。(题目保证小圆不会相交,且小圆不会完全把大圆覆盖)分析:余弦定理,大大简化运算。代码:#pragma comment(linker, "/STACK:102400000,102400000")...原创 2018-08-06 21:25:21 · 254 阅读 · 0 评论 -
hdu 6396 Swordsman
题目:点击打开链接题意:打小怪兽的题目,主角有k个技能,每个技能有对应的攻击力ai,怪兽有k个防御值bi,k个强化能量ci。只有所有的ai > = bi,这只小怪兽才会被打死。然后主角的技能就会被强化,新的ai = 打死怪兽前的ai + ci。问能打死多少怪兽,并且最后的ai是多少。分析:开k个优先队列。每个队列都满足从小到大那种。首先将所有的怪物加入到第一个队列中。然后对于v[i]&...原创 2018-08-14 20:43:42 · 201 阅读 · 0 评论 -
HDU 6395 sequence
题目:点击打开链接题意: 分析:分块递推,矩阵加速递推,比如p=16,i按照p/(p/i)+1来递增,得到:1,2,3,4,5,6,9,17.滑动的区间中每个数对于p来说除数一样,比如【9,17)这部分对于16来说除数都是1,那么观察如果后面的p/n是个常数,就是赤裸裸的矩阵快速幂了,如果加上p/n,就要利用分块的思想,思路大体是这个思路,但实现起来有很多细节考虑,n与p的大小关系要界...原创 2018-08-14 23:10:16 · 202 阅读 · 0 评论 -
hdu 6400 Parentheses Matrix
题目:点击打开链接题意: 给一个只含'('和')'的矩阵,只考虑从行和列上的括号序列,构造一个矩阵使得合法括号序列的总数最多。分析:构造,分类讨论。首先奇数行或奇数列内是不存在合法括号序列的,所以如果n或m是奇数,则最多有n/m个括号序列(即把行/列直接填充为合法序列),需要分析的是偶数行和偶数列的情况。首先贪心一下,起点位于第一行和第一列,所以应该尽量在这些位置填'(',首先想到的是把矩...原创 2018-08-15 23:07:26 · 202 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第七场) - J - Sudoku Subrectangles
题目:点击打开链接题意:已知一个n*m充满字符的矩阵,求出有多少个子矩阵,其每一行每一列都没有相同的字母(不同行不同列的位置字母可以相同)分析:枚举以每一个点作为子矩阵的左上角,求出有多少个,然后最后求和即为答案。预处理每一个点向下想右最大的延伸长度。显然,无论是往右还是往下这样的一段,长度都不会超过52。复杂度为O(52*n*m)。有很多细节需要注意,最好画个草图。代码:#p...原创 2018-08-13 20:05:21 · 198 阅读 · 0 评论 -
牛客多校第七场 C Bit Compression
题目:点击打开链接题意:一个长度为n的01字符串,第i个和第i+1个经过^或者|或者&运算后合并,问最终01串变成1的方法有多少种。分析:直接暴力用stl模拟,或者dfs+剪枝,减掉全为0的情况,时间和空间复杂度都有点玄学。或者使用预处理,暴力的复杂度是3^n的,只需要再优化一点点! 如果剩下了16个变量,可能性只有65536个。 预处理他们,得到一个3^(n-4)的做法。暴力代...原创 2018-08-13 21:58:51 · 256 阅读 · 0 评论 -
HDU 6390 GuGuFishtion
题目:点击打开链接题意: 分析:展开欧拉函数化简得到,我们要处理的就是gcd(a,b)=igcd(a,b)=i时的G(a,b)值G(a,b)值,以及有多少对a,b的gcd为i,G(a,b)=ϕ(i)/i,G(a,b)=ϕ(i)/i,预处理欧拉函数和逆元即可。对于一个数i,在a∈[1,n],b∈[1,m]的范围内,设f[i]为gcd为(i,2i,3i...)的对数,显然 : f[i]=[n/i...原创 2018-08-16 20:20:34 · 258 阅读 · 0 评论 -
HDU 6435 CSGO
题目:点击打开链接题意:有n个主武器,m个副武器,(n < 1e5,m < 1e5)每个武器有个主属性S和一个 K(K < 5)个副属性,现在要求以下值最大 分析:对应两个属性值绝对值之差,|a-b|=a-b或者b-a,k小于等于5,所以两个武器的和的可能情况最多是2的k次方,32种情况。每一种状态,取n个主武器,属性和与s之和,中的最大值,与对应状态的m个副武器,属性和...原创 2018-08-23 10:27:47 · 197 阅读 · 0 评论 -
hdu 6299 Balanced Sequence
题目:点击打开链接题意:给你n个串,让你重新排列组合这n个串(每个串内部顺序不变),使得匹配的括号长度最大。分析:贪心好题,先把每个括号序列用栈来使得中间的都括号都匹配,使得右括号都在左边,左括号都在右边然后排序,我们先把右括号小于等于左括号的排在前面,然后对于右括号小于等于左括号的情况,我们按右括号从小到大排序(因为最左边的右括号都是被浪费掉的,浪费的越小越好),然后把右括号大于左括号的...原创 2018-08-23 21:29:26 · 174 阅读 · 0 评论 -
hdu 6432 Cyclic
题目:点击打开链接题意:(题目描述有点问题,导致看了半天)给你一个n,1-n个数排列成环要求后一个不能刚好比前一个大一(不能包含有 [i, i + 1] 或 [n, 1] 这样的子串),问你有多少种排列方式。分析:之前都不知道有环排列这个东西,学到了,环排列,顾名思义,一个排列首尾相连成环,长度为n的环排列个数为(n-1)!,因为一个正常的排列对应n个环排列。又是容斥啊,发现容斥还是有套路...原创 2018-08-23 22:47:46 · 226 阅读 · 2 评论 -
牛客网暑期ACM多校训练营(第七场) E.Counting 4-Cliques
题目:点击打开链接题意:给出一个K(1~1e6),要求构造一个图G满足一下条件:75个点以内,不存在重边,且刚好存在K个(4点完全图).分析:构造好题,首先看到这道题都会先暴力跑一波C(n,4),因为这是n个点的完全图存在4点完全图的数量,观察发现当n>=72时C(n,4)才大于1e6我的做法是先取一个K以内的最大T个点的完全图,然后剩下的数量就是K-C(T,4),还有一点可以发现就是...原创 2018-08-14 09:59:20 · 177 阅读 · 0 评论 -
HDU 5439 Aggregated Counting
题目:点击打开链接题意:f(n)表示序列中n的最后的位置,求f(f(n))。(哥伦布序列)分析:原序列为1 2 2 3 3 4 4 4 5 5 5 6 6 6 6 7 7 7 7,出现i次的数个数序列也为1 2 2 3 3 4 4 4 5 5 5 6 6 6 6 7 7 7 7,最终发现f(f(n))=1 + (2+3)*2 + (4+5)*3 + (6+7+8)*4 + ... + (.....原创 2018-08-09 21:29:09 · 155 阅读 · 0 评论 -
The 2018 ACM-ICPC China JiangSu Provincial Programming Contest K. Road
题目:点击打开链接题意:n个顶点编号为0到n-1的图,从中删去一些边形成一棵树,保证树上任意一个点到0点的距离等于原图中0到这个点的最短路长度。求这棵树有多少种画法。分析:(HDU 6026原题)先计算每个点到原点的最短距离,对于任意一个非原点,考虑给其选择一个父亲,使得父亲到原点的距离+两点距离=自己到原点距离。每个点可能的父亲的数量的乘积就是答案。可以想象成三角形用两条短边替换一条长边。...原创 2018-07-26 10:51:50 · 226 阅读 · 0 评论 -
2018牛客多校训练营第一场A Monotonic Matrix
题目:点击打开链接题意:在所有的n*m的矩阵中,数出满足条件的矩阵的数量(% 1e9+7)* Ai, j ∈ {0, 1, 2} for all 1 ≤ i ≤ n, 1 ≤ j ≤ m.* Ai, j ≤ Ai + 1, j for all 1 ≤ i < n, 1 ≤ j ≤ m.* Ai, j ≤ Ai, j + 1 for all 1 ≤ i ≤ n, 1 ≤ j <...原创 2018-07-26 17:16:24 · 244 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Urumqi D. Fence Building
题目:点击打开链接题意:圆上n个点任意连线,最多分成多少个区域。分析:首先在圆上去n个点,要是n个点产生的区域数最大,就必须是任意3条直线不交于一点。也就是圆内任意一点最多只有两条直线经过。在圆上的n个点会连出C(n,2)条直线。任意一个圆内交点都可以有圆上四点构成的四元组唯一对应,那么无序四元组的个数为C(n,4),也是交点个数。如果把圆看成一张图(圆弧也是边),点数有n+C(n,4),边...原创 2018-07-30 09:42:21 · 400 阅读 · 0 评论 -
Greater New York Regional Contest 2017 D.Pavers
Pavers时间限制: 1 Sec 内存限制: 128 MB题目描述In the land of Quendor, walkways, sidewalks and hallways are always 2 mb (mini-bloit, roughly 1/2000 of a bloit) in width. J. Pierpont Flathead (pictured be...转载 2018-08-03 21:23:58 · 187 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第三场) C Shuffle Cards
题目:点击打开链接题意:M个操作,每个操作都是从p开始的s个数移动到开头,问你最后的序列是什么。分析:treap(树堆)或者Splay(伸展树)或者SBT(节点大小平衡树)都能实现,最方便的是利用STL中的rope,rope的底层实现是可持久化平衡树,复杂度为O(M*sqrt(N))。代码:#pragma comment(linker, "/STACK:102400000,1024...原创 2018-07-27 16:58:48 · 209 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第六场) J. Heritage of skywalkert
题目:点击打开链接题意:按照题中给出的方式生成n个数,求这n个数任意两个数的最小公倍数的最大值。分析:由于数据看上去像是随机生成的,所以只需要选出前 100 大的数平方暴力即可。随机两个正整数互质的概率为 6/π^2,取前k个数可以用STL的nth_element。代码:#pragma comment(linker, "/STACK:102400000,102400000")///...原创 2018-08-04 19:47:40 · 196 阅读 · 0 评论 -
ACM Greater New York 2017 H. Triangle to Hexagon
题目:点击打开链接题意:AA点的坐标为(0,0)(0,0),BB点的坐标是(0,a)(0,a),CC点坐标为(c,d)(c,d),三角形ABCABC的外接圆为OO,内心为点II,NN为BIBI的延长线与圆OO的交点,MM点和PP点同理,问EF、FG、GH、HJ、JK、KEEF、FG、GH、HJ、JK、KE的长度分别为多少。分析:计算几何模板,照着题目给的条件模拟一遍就行。代码:#p...原创 2018-08-04 23:05:12 · 297 阅读 · 0 评论 -
hdu 6341 Problem J. Let Sudoku Rotate
题目:点击打开链接题意:给你一个T,表示案例数量,给次给4*4块的数独,其中每一块数独都是4*4且不重复的,每一块数独只能顺时针反转,求使得数独合法的最少翻转次数。 分析:直接暴搜加上可行性剪枝和最优性剪枝即可。 数独的限制较强,可行性剪枝的效果很好。 对每一块数独从上到下,从左到右遍历,每遍历一块,判断是否合法,若不合法就旋转一次再判断。 判断过程如下图所示,假设我们现在搜到了红色块区域,...原创 2018-08-05 11:48:08 · 158 阅读 · 0 评论 -
hdu 6336 Problem E. Matrix from Arrays
题目:点击打开链接题意:给你一个长度为l的a数组,然后按题目所给代码构造m矩阵,q次询问,每次查询给出左上角(l,r)和右下角(ll,rr),求m数组中这个矩形里所有数的和。分析:打表也可以发现规律,求2L*2L单位矩阵的二维前缀和。代码:#pragma comment(linker, "/STACK:102400000,102400000")#include<al...原创 2018-08-05 15:07:27 · 132 阅读 · 0 评论 -
HDU 6319 Ascending Rating
题目:点击打开链接题意:先给出一个长度为k(k<=n)的序列,和一个递推式,让你先求出整个长度为n的序列,然后对于每个区间都求题目给的式子,其中maxratingi为区间最大值,count为区间上升序列元素个数。对于不同的区间maxratingi和count要重新算。分析:滑动窗口模型,需要使用单调队列,注意要从后往前,不理解可以手动模拟一下。代码:#pragma comme...原创 2018-07-31 19:05:24 · 214 阅读 · 0 评论 -
HDU 6430 TeaTree
题目:点击打开链接题意:给出一颗树,给出每个点的val,要求输出树上所有点的最大价值,最大价值定义为 ans[X]=max(gcd(val[i],vaj[j])) i,j 满足 lca(i,j) = X。分析:把子树的因子压到bitset,假如存在因子n,那么bitset的第n位为1,如果要求两个子树之间节点的最大gcd,那么就是要找最大的因子,两个子树的bitset与一下找最大的1的位置...原创 2018-08-24 13:14:02 · 293 阅读 · 0 评论