![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
补题
文章平均质量分 61
donname
这个作者很懒,什么都没留下…
展开
-
Lawn of the Dead
题目链接题意:一个僵尸一次只能向下或向右走一个,现在在n∗mn*mn∗m的地图上埋有一些土豆地雷,僵尸无法通过土豆地雷,问僵尸能到达的格子有几个·解法:暴力?记录上一次询问可达区间[l1,r1][l_1,r_1][l1,r1]和当前询问行没有地雷的可行区间[l2,r2][l_2,r_2][l2,r2],当前行可行区间如果和上一行的某个可达区间可以连通,则这行可到达的点增加r2−max(l1,l2)+1r_2-max(l_1,l_2)+1r2−max(l1,l2)+1个,记录可以增加答案的原创 2021-07-30 16:28:58 · 393 阅读 · 1 评论 -
2021牛客暑期多校训练营4:B-Sample Game
题目链接补题学习思路来源于:tcy今天长胖了吗和溢流眼泪题意:1...n1...n1...n的数的生成概率为pip_ipi,执行以下操作:1.1.1.随机生成一个数xxx2.2.2.如果xxx不小于之前生成的所有xxx,进行111步骤,否则进入333步骤3.3.3.进行分数结算,分数为生成的所有xxx的个数的平方解法:概率dp第一阶段:cnt[i]cnt[i]cnt[i]表示第一个生成的数字是iii时还可以生成数字个数的期望,记jjj为下一个生成的数字,则cnt[0]为初始状态①i≤j①原创 2021-07-30 15:16:03 · 130 阅读 · 0 评论 -
I love max and multiply
题目链接题意:给定两数组AAA,BBB,定义CCC数组为:Ck=max(Ai∗Bj)C_k=max(A_i*B_j)Ck=max(Ai∗Bj),iii&jjj ≥k\geq k≥k,求∑i=1nCi\sum_{i=1}^{n}C_i∑i=1nCimodpmodpmodp解析:我们定义DDD数组为:Dk=max(Ai∗Bj,Dk+1)D_k=max(A_i*B_j,D_{k+1})Dk=max(Ai∗Bj,Dk+1),iii&j=kj=kj=k,则Ci=DiC_i=D_i原创 2021-07-29 17:13:20 · 134 阅读 · 0 评论 -
I love permutation
题目链接题意:给定一个奇素数ppp和一个小于ppp的整数aaa,按如下规则生成一序列AAA:Ai=a∗iA_i = a*i%pAi=a∗i,111≤\leq≤iii<<<ppp,问A序列的逆序对对数模222的结果解析:①可以证明A是一个又111⋯\cdots⋯p−1p-1p−1构成的排列:不妨假定在取模后Ai=AjA_i=A_jAi=Aj,且i>ji>ji>j由定义有在取模之前Ai=k1∗p+c=a∗iA_i=k_1*p+c=a*iAi=k1∗p+c=a∗原创 2021-07-28 16:50:04 · 151 阅读 · 0 评论 -
Rise in Price
题目链接题意:n∗mn*mn∗m的矩阵,在(i,j)(i,j)(i,j)处有a[i][j]a[i][j]a[i][j]个钻石,且可以让所有钻石的单价上涨b[i][j]b[i][j]b[i][j],问从(1,1)(1,1)(1,1)出发,每一次向下或向右移动到达(n,n)(n,n)(n,n)后,所走过得位置的钻石最多可以卖多少钱?解法:记dp[i][j][k]dp[i][j][k]dp[i][j][k]为到达i,ji,ji,j位置时所持有的钻石为kkk时可以卖多少钱,dp[i][j][k]dp[i][j]原创 2021-07-28 11:58:46 · 223 阅读 · 0 评论 -
Photoshop Layers
题目链接ps:题意:有n次操作,操作有两种①操作一:使这次操作后的颜色都为当前RGB,②操作二:使当前的颜色RGB为上一次操作的颜色的RGB加上输入的RGB,超过255时为255,现在有q次询问,每次询问输入l,r,问一颜色RGB初始为(00,00,00)的背景通过l-r的操作后是什么颜色解析:模拟+前缀和当操作是操作二时,RGB加上即可(不管上限),当是操作一时,直接赋值RGB即可AcCode:#include <iostream>#include <algorithm&g原创 2021-07-28 10:23:08 · 152 阅读 · 0 评论 -
Game on Plane
题目链接题意:Alice选择k条直线,Bob任意画一条直线,问Bob画的直线和Alice选择的直线最少有多少条相交?Alice的目标是使结果尽可能大,Bob反之解析:贪心即可,Bob为了使结果尽可能小,显然会画尽可能多的与当前直线平行的直线,Alice则要使选择的直线中平行线尽可能少AcCode:#include <iostream>#include <algorithm>#include <vector>#include <map>#def原创 2021-07-28 09:55:24 · 99 阅读 · 0 评论 -
2021牛客暑期多校训练营4:C-LCS
题目链接题意:三个长为n的字符串s1,s2,s3s1,s2,s3s1,s2,s3,已知LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=cLCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=cLCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=c,请你构造出符合条件的s1,s2,s3s1,s2,s3s1,s2,s3解析:我们先让s1,s2,s3s1,s2,s3s1,s2,s3同时在首部放入min(a,b,c)min(a,b,c)min(原创 2021-07-27 10:54:25 · 311 阅读 · 1 评论 -
2021牛客暑期多校训练营4:I-Inverse Pair
题目链接题意:一个数组的重量为这个数组的逆序对对数,现在给你一个排列AAA,数组CCC由A+BA+BA+B生成,BBB的元素是000或111,有你自己决定,问CCC最小的重量为多少解析:因为AAA中元素各不相同,所以一个数如果加上111,那么它与在它之后形成的逆序对数不会改变,如果在它之前有一个数比它大111,则加上后可以使逆序对数量减111,所以我们这要确定BBB的0,10,10,1取值:如果在前面的数改变之后还存在比它大111的数,那么这个位置BBB为111,逆序对数减111解法:用归并或线段树/原创 2021-07-27 10:42:41 · 303 阅读 · 0 评论 -
2021牛客暑期多校训练营4:J-Average
题目链接题意:给定数组AAA,BBB,矩阵CCC的元素C(i,j)=Ai+BjC(i,j)=Ai+BjC(i,j)=Ai+Bj,问CCC的所有大小大于x∗jx*jx∗j的子矩阵的平均值最大为多少解析:在一个以(x1,y1)(x1,y1)(x1,y1)为左上角(x2,y2)(x2,y2)(x2,y2)为右下角的子矩阵D[x1][y1][x2][y2]D[x1][y1][x2][y2]D[x1][y1][x2][y2]中,总和为(SUMA[x2]−SUNA[x1−1])∗(y2−y1+1)+(SUMB[y2原创 2021-07-27 10:29:24 · 98 阅读 · 0 评论 -
hdu6956:Pass!
题目链接题意:有n个人,当前有一个球在第一个人手中,每一个时间持球人都会将球扔给其他人,在t时间后球在第一个人手中,现在告诉你整个过程中扔球方案数在对998244353取模后为x,问最小的t为多少解法:①记dp[i][0]为t=i时球不在第一人人手中的方案数,dp[i][1]为t=i时球在第一个人手中,易知dp[i][0]=dp[i−1][1]∗(n−1)+dp[i−1][0]∗(n−2)dp[i][0]=dp[i-1][1]*(n-1)+dp[i-1][0]*(n-2)dp[i][0]=dp[i−1原创 2021-07-26 18:12:45 · 182 阅读 · 0 评论 -
hdu6968:I love exam
题目链接题意:有nnn场考试,直接去考都只能得0分,现在给你一些复习资料,他们对应上述考试的一种,需要costcostcost天来阅读,阅读完之后对应的考试可以多考valvalval分,问有ttt天来复习,如果挂科数不大于ppp,最多能拿多少分解法:进行两次dp操作①记为dp1[i][j]dp1[i][j]dp1[i][j];dp1[i][j]dp1[i][j]dp1[i][j]表示第iii场考试获得jjj分的最小花费时间,即求一个空间为maxupmaxupmaxup,物品价值为天数,体积为可以增加的原创 2021-07-23 16:28:39 · 223 阅读 · 0 评论 -
hdu6995-Xor sum
题目链接题意:给定一数组A,问最少连续几个数的异或和大于等于k解法:得到A数组的前缀异或数组X,每次询问时固定右端点j,查看j的左方有无i使得X[j]^X[i]>=k,如果有,则取最大的i,如果j-i+1>所记录的答案ans,则更新答案。用01字典树记录前缀异或数值,在01字典树的每个节点设置一个标志flag,记录可以到达这个节点的X[i]的下标i,对于每一个询问端点j,我们在01字典树中做这样的搜索: &原创 2021-07-21 20:12:07 · 105 阅读 · 0 评论 -
Maximal submatrix
题目链接题意:给出一个n*m的整数矩阵A,问竖直方向上不减的最大子矩阵的面积是多少解法:悬线法/单调栈我们先将原矩阵化为另一个矩阵H,H[i][j]表示第i行第j列的高度(竖直方向上以A[i][j]为最后一个元素的连续不递减序列的长度),这题就变成了以第i行为底边,j处有一个高为H[i][j]的矩形,求这行的矩形构成的最大矩形的面积,然后求所有这些矩形的最大面积悬线法/单调栈可以O(m)时间求一行的所有可构成矩形的最大面积,n行的时间为O(nm),不懂悬线法的戳这里:悬线法AcCode#incl原创 2021-07-21 15:48:40 · 111 阅读 · 0 评论 -
2021牛客暑期多校训练营1:J-Journey among Railway Stations
题目链接题意:有n个火车站点,第i个站点可以入站出站的时间为[ui,vi],到达下一站需要时间cost[i],需要我们实现三种操作:①询问从站点1出发,能否顺利通过l,l+1,…,r站点②修改cost[i]的值③修改ui,vi的值解法:线段树,没什么可展开讲的,看代码就可以理解了节点形式为:struct node { int flag; ll minx, maxy, usetime;};flag:次节点能否通过minx:这个节点到达下一站的最早时间maxy:到达这个节点允许的最晚时间原创 2021-07-21 14:45:13 · 119 阅读 · 0 评论 -
2021牛客暑期多校训练营2:I-Increasing Subsequence
题目链接题意:一个序列A,现在两个人进行取数,取数规则如下:当前人取得数为位置在他上一次取数位置的右侧,取数的大小得大于之前两人取的所有数,存在可以取的数时随机取数,问取数个数的期望是多少解析:明显的概率dp,我们用dp[i][j]表示上一个人取了第i个位置的数,当前取数人取了第j个位置上的数,则dp[i][j]=∑k=1n\sum_{k=1}^n∑k=1ndp[j][k]/cnt+cnt,cnt为可取的k的个数,k满足arr[k]>arr[j],则ans = ∑1=1n\sum_{1=1}^n原创 2021-07-21 09:59:46 · 277 阅读 · 0 评论 -
2021牛客暑期多校训练营2-F:Girlfriend
题目链接题意:给定A,B,C,D,四个点和系数K1,K2,集合X中的点满足|A-X|>=K1|B-X|,集合Y中的点满足|C-Y|>=K2|D-Y|,求集合Z=X∩Y的大小大学狗先梦回高中求下几何:我们现在二维平面下求下形状先从网上盗了个图,将就看下一:前提条件PA/PB=KPM为∠APB的角平分线,有角平分线定理可得PA/PB=AM/MBPN为∠APB外角的角平分线,我们过B点做一条直线PM平行线交AP于E,使得BE//PN证明:∵PN//BE,PM为∠APB外角的角平分原创 2021-07-20 18:28:51 · 84 阅读 · 1 评论 -
2021牛客暑期多校训练营2-K:Stack
题目链接题意:原有一数组A,用B在记录A的最长不递增序列,现在告诉你pi对应的b[pi]值,要求还原出一组可行的C数组,使得1-pi位置的最长不递增序列长度为b[pi]个人解析:先处理我们将P序列从大到小处理,...原创 2021-07-20 10:00:38 · 81 阅读 · 0 评论 -
2021牛客暑期多校训练营1-Game of Swapping Numbers
题目链接题意:现给你两个数组A,B,你需要交换k次b内元素,问交换后∑1n\sum_1^n∑1nabs(ai-bi)最大为多少解析:当没有k的限制时:①如果ai>=bi,则abs(ai-bi)=ai-bi,即A,B数组中有n个元素做被减数,n个做减数,ans = ∑1n被减数\sum_1^n被减数∑1n被减数-∑1n减数\sum_1^n减数∑1n减数,要获得最大的ans,则被减数应该是A,B中最大的n个元素,减数为A,B中最小的n个元素,用C数组表示被减数元素集合,D数组表示减数元素集合原创 2021-07-18 18:10:43 · 502 阅读 · 4 评论 -
2021牛客暑期多校训练营1-Knowledge Test about Match
题目链接题意:数组a={0,1,2…n-1},现在给定一个数组b,你可以随意交换b中的元素,定义损失函数f(a,b)=∑1n\sum_1^n∑1nabs(ai−bi)\sqrt{abs(ai-bi)}abs(ai−bi),要求你交换后的b数组与a数组的损失函数和最小损失函数在T组的平均偏差小于0.04这题不会验证做法的正确性,但还是来讲下蒟蒻补题思路:暴力的去不断地减小损失函数,循环拿出i,j两个位置的b,如果(abs(bi−i))\sqrt{(abs(bi-i))}(abs(bi−i))+(ab原创 2021-07-18 16:12:48 · 188 阅读 · 0 评论 -
B. AGAGA XOOORRR
题目链接题意:一长为n的数组,可以对相邻的数进行异或操作,操作后两数合并为两数的异或值,数组元素减一,问数组是否可以通过树上操作使数组元素全部相同,且元素个数大于等于2解析:容易想到如果所有数异或后结果为0,则结果为"YES",因为异或操作只有偶数个相同数值的数进行异或可以得到0,而奇数个相同数值的数进行异或操作结果为他们的数值,由此可得出如果所有数进行异或操作的结果不为0,且最终可以将数组所有剩余元素的值相同的时,异或结果为最后所有元素的值,所以我们可以有如下判断:如果所有的数异或结果不为0,但对相原创 2021-04-23 21:06:44 · 166 阅读 · 0 评论 -
2021ICPC昆明站I-Mr. Main and Windmills
题目链接题意:有n个点,位于x线段line(s,t)的一侧,记一点x,问x从s点到t点的过程中,以x点为观测点恰好第h个点与其他点第k次交换相对位置的时x的位置。改变相对位置:以x点引一射线,a,b两点存在相对左右关系,若x点不变,改变射线相对位置仍不会改变,当x点移动到某处时,a,b两点的相对左右关系发生变化约束条件:不存在两点与线段line(s,t)共线的情况解析:关键之处在于找出a,b两点之间相对左右关系恰好发生改变的位置,容易想到该点为line(a,b)与线段line(s,t)的交点,不明白原创 2021-04-06 18:03:24 · 375 阅读 · 0 评论 -
2021ICPC昆明站L-Simone and graph coloring
题目链接题意:一个序列p,所有的逆序对间直接存在一条边,现在将这些点染色,相邻的点颜色不能相同,问最少用多少种颜色,并输出每个点的颜色解析:不难想到的是,最少的颜色种类为最长单调递减序列的长度,现在考虑每个点染什么颜色的问题,假设第i个点染得颜色为x,那么i节点之前至少存在一个已i节点结尾的最长单调递减序列,长度为x,因为单调递减序列中的点两两相连,所以需要的颜色为序列的长度。我们通过上述解释可以得到一种涂色方式:某节点的颜色为以该节点结尾的最长单调递减序列的长度。AcCode#include<原创 2021-04-05 21:30:54 · 551 阅读 · 1 评论 -
Mere Array
题意:min为数字序列arr的最小值,当两个数的最小公因数为min时可以交换位置,问经过数次操作后是否可以使得arr从小到大排列两者的最小公因数为min的数可以交换,也就是说为min的倍数的数之间的位置可以随便交换,所以要使得arr升序排列,关键的是那些不能交换位置的数是否在它们该在的位置,所以我们只需要将原序列和升序排列的序列进行对比,如果存在一个数不为min的倍数且不再它原来的位置,这说明原序列无法通过交换操作得到升序序列。#include<iostream>#include<c原创 2020-08-29 18:07:06 · 118 阅读 · 0 评论 -
RPG Protagonist
题意:有两个口袋,容量分别为f和p,有两种物品,一种数量为cnts,重量为s,一种数量为cntw,重量为w,问最多可以装下多少件物品。我们假设s为较轻的一种,因为只要求数量,所以我们的想法当然是尽量装较轻的一种,但往第一个袋子一直装s最终装的物品不一定是最多的,毕竟会有很多的"恰巧"。所以我们不能一股脑的往第一个袋子塞s,而是需要权衡第一个袋子放多少s,第二个袋子放多少s,cnt最大为2e5,所以我们可以遍历第一个袋子放入s的数量,通过给出的数据之间的关系我们可以计算出将一个袋子放不下或没东西放的情况下总原创 2020-08-29 17:54:20 · 190 阅读 · 0 评论 -
Binary String Reconstruction
题意:一个只有‘0’和‘1’字符串str,当满足i>=x&&arr[i-x]='1’或i+x<str.length()&&arr[i+x]='1’时使str[i]=‘1’,否则令str[i]=‘0’,现在有进行上述操作后的一个新字符串s,问原字符串str是否存在,不存在输出-1,否则输出str如果新字符串s的某个位置为’1’,则它的后x个位置或前x个位置都可能是’1’,不好确定,但是如果某个位置是’0’,则它的前x个位置和后x个位置一定是’0’,所以我们以为’0原创 2020-08-29 17:40:13 · 298 阅读 · 0 评论 -
Zigzags
题意:一个数字序列,i,j,k,l四个下标关系为(i<j<k<l),问有多少组下标满足ai=ak,aj=aln的范围是3000,显然暴力O(n4)是不行的,所以需要优化,我们需要解决的问题是在j之前有多少个ai=ak,有k之后有多少aj=al,我们开一个二维数组sum记录前多少个数有多少个某个数,ai=ak的个数为sum[j-1][ai],aj=al的个数为sum[n][aj]-sum[k][aj],n>=a,此情况下可以组成满足条件的四元组的个数为sum[j-1][ai]*(su原创 2020-08-29 17:25:33 · 227 阅读 · 1 评论 -
牛客小白月赛27
人懒,几天还没补完所有。。。不太会用这个写文章所以写的有点丑,请见谅A-巨木之森B-乐团派对这题使用DP,将a[i]从小到大排列,dp[i]表示前i个人最多可以组成的乐队数量,我们每次满足第I个人的要求,那么dp[i]=dp[i-a[i]]+1,现在来分析一下其合理性,如果i<a[i],则必然是无法凑一个队的,这时dp[i]=0,当i>=arr[i]时,满足第i人的要求,则剩下i-a[i]人,当然,我们最后一队还可以取a[i]+1,a[i]+2…,但我们dp表示的是i人最多多少个人,最后一原创 2020-08-26 21:18:17 · 125 阅读 · 0 评论 -
Omkar and Bed Wars
题意:n个人站成一圈,一个人如果只被一个人攻击,那么他只能回击攻击者,如果被两个人同时攻击,那么可以攻击任意一个,现在给你一个L,R组成的字符串,L表示向左边攻击,R表示向右边攻击,现在问你需要改变多少个人的朝向才能使得所有的人都可以满足上述要求。如果所有人的初始方向不一样。对于一串全部都是R的字符串,两侧都是L。当R的个数为1和2时不用改变初始方向。当R的个数为3LRRRL时,我们需要改变一个,成为LRRLL。当R的个数为4时,需要改变一次,成为LRRLRL。当R个数为5时,需要改变一次,成为L原创 2020-08-19 23:32:23 · 214 阅读 · 0 评论 -
Colored Rectangles
意义:有r对红色木棒,g对绿色木棒,b对蓝色木棒,用他们构成矩形,矩形的对边颜色相同,邻边颜色不同,问组成的矩形面积之和最大为多少(一对木棒只能用于一个矩形)如果邻边的边长都最大,那么得到的矩形的面积也最大,最初我就是采用这种贪心的方案去写题,先排序然后找不同颜色最长的边,然后WA了,然后仔细一想发现这样是有问题的,简单的hack数据:r[]={5,5},g[]={6},r[]={6},按上述方案答案是36,但显然有更大的答案:60,所以这种思路在只有两种颜色时是可行的,但当颜色种类为三时在某些情况下是不原创 2020-08-18 14:56:41 · 235 阅读 · 2 评论 -
Good Subarrays(前缀和)
题意:给你一串字符串,问有多少个子串满足str[r]-str[l]=r-l很明显要用到前缀和,但暴力一个一个找肯定是不行滴,这里要用一个小技巧,将所有的数减去一,那么str[r]-str[l]=r-l就变成了str[r]-str[l]=0,所以满足条件的话两位置之间的和应该为0,所以我们只需要寻找sum[x]==sum[y]的个数就可以算出结果,结果是(sum[x]-1)*sum[x]/2,我们可以便判断边处理,遇到sum[x]==0时ans++,然后再加上这之前的sum[x]的个数。#include&原创 2020-08-17 17:24:06 · 233 阅读 · 0 评论 -
牛妹爱数列
https://ac.nowcoder.com/acm/contest/6885/D原创 2020-08-15 00:32:55 · 135 阅读 · 0 评论 -
Hearthstone Battlegrounds
题意(简洁写,牛客机翻太不友好,可能描述不太准确):生物A有4种类别:1.剧毒+圣盾+召唤(机翻脱锤emm)2.剧毒+圣盾3.剧毒+召唤4.剧毒剧毒效果:无盾情况下即死,有盾情况下破盾,作为防守方剧毒可以即死进攻方,进攻方可以即死防守方,上方都有剧毒效果时双方同归于尽圣盾效果:抵挡一次任意伤害召唤效果:死后召唤生物B,B的属性:一攻一血,(A因为都有剧毒视作攻击力无穷大,血量无穷大,只有即死可以杀死)规则:每个回合只能有一个生物行动,当一方场上还有A或B,另一方场上无A和B,则获胜。现在给出原创 2020-08-11 00:13:27 · 199 阅读 · 0 评论 -
Groundhog and 2-Power Representation
题意:给出一串字符串,2(x)表示2^x,问这串字符串表示的数是多少因为我不太擅长字符串的题目,所以比赛的时候扔给队友做了,我A了两道签到就跑了,没想到队友后面好像鸽了。看别人的代码,emmm,只有一个感想:python天下第一对比下最短代码长度python:c++:但无奈懒人只会c++。好吧,回归正题吧,讲讲做法吧。首先是括号的问题,我们需要层层递归,直到括号里没有括号的情况,然后在从里往外算出次幂即可,答案最大范围为1e18,在2200-2300之间,所以我们只需要在最外面一层求高精度原创 2020-08-10 17:40:36 · 123 阅读 · 0 评论 -
Groundhog Looking Dowdy(尺取大法)
题意:有n天,第i天有ki件衣服选择,从中选m天,使得所选衣服的最小值和最大值差值最小。这题我虽然过了但严格来讲我WA了,因为数据太水的原因全部取最小值也能过。标准做法应该是尺取。尺取很久都没用过了,有点生,印象中尺取主要思想应该是这样的:两个指示位置的变量,在符合要求的情况下右方指示器向右移动,不符合的话左侧指示器向右移动。#include<iostream>#include<algorithm>#include<cstdio>#include<cst原创 2020-08-10 15:53:39 · 131 阅读 · 0 评论 -
Game SET(枚举暴力)
题意:有一种牌,有四种属性(机翻尽是些奇奇怪怪的东西),每种属性又分为三种,但在这三种之上有一种是*,它可以代替其他三种。现给你n张牌,问能不能找到三张牌,它们的所有属性都相同或者所有属性都不同。这题做法很简单,暴力枚举即可。虽然最坏的情况下(无解)时间复杂度乍看一下T*n3最大达到了6e9,但是当n>=21时必有解。至于证明过程。。放过我吧,能力有限,题解证明这个结论过程竟然是英文的,英语渣看不懂。证明过程,需谷歌挂梯子#include<iostream>#include<原创 2020-08-06 17:43:24 · 487 阅读 · 0 评论 -
Interesting Computer Game
题意:给你两组数A[n],B[n],第i次操作可以从A[i],B[i]中选择一个数,问最多可以选择多少个不同的数。多场比赛下来,感觉翻译是个大问题,虽然翻译对了也大概率不会做,但翻译错了根本就莫得机会,英语渣哭晕在厕所。(日常牢骚)这题我一开始想的是贪心做,然后想想不行,选择一个数对后面的影响蛮大的,然后就没然后了233。题解说把这些数对(<Ai,Bi>)看成边的端点,去求连通块的个数,然后结果是数的种类-不带环的连通块数量,我想想好像确实是这样,有环的话至少可以选到一个节点,从该节点出发可原创 2020-08-05 18:08:24 · 135 阅读 · 0 评论 -
Kabaleo Lite
题意:有n盘菜,每盘菜有一定的利润和数量,每位顾客必须从第一盘菜上起,并且上的菜必须是连续的,即如果这盘上的是第i盘,则下一盘必是i+1,上一盘是i-1,问最多有多少个顾客能上菜,此时利润最大是多少?(英语不好,可能不是很准确)比赛的时候一言难尽。。。英语不好只能机翻,翻出来并没有从第一盘开始这意思,我太难了。因为必须从第一盘菜上起,所以做多能上的数量即为第一盘菜的数量。然后我们讨论如何得到最大利润,因为我们上的菜必须是连续的,所以获得的利润要用前缀和来计算,而且菜必须是连续的,所以一个最大利润的方案能原创 2020-08-04 11:02:22 · 154 阅读 · 0 评论 -
Combination of Physics and Maths
题目大意:给定一矩阵,求一个子矩阵(可以非连续),使得子矩阵所有数的和除以子矩阵最后一行的和最大,输出这个比值。假如我们对于每列都进行这样的计算:从第一行到终止行(任一行)的数之和除以终止行的数,那么我们可以得到以每一列的某些行作为矩阵的最大值,如果以多列作为矩阵,合并后的值一定不会大于合并前的值,原因 设较大的为a/b,较小的为c/d; 合并后为(a+c)/(b+d); a/b=(a*b+a*d)/(b*b+b*d); (a+c)/(b+d)=(a*b+c*b)/(b*b+b*d); a/b-原创 2020-07-27 21:30:14 · 180 阅读 · 0 评论 -
Easy Construction
题意:给出n和k,问是否存在一个序列P,元素为1-n,有任意长度的子序列之和模n为k这题本质上挺简单的,但可惜比赛的时候脑子没转过来,所谓的连续一直想的是包含有一个固定的点k,然后wa了5次,心态炸了,开始无能狂怒~~,最后滚去肝fgo~~ 。当n为偶数时:长度为1时子序列元素即为k,根据题意,有(k+sum(除k外))%n=k;所以我们可以找是否有增加的子序列和为t*n,当k=n/2时,我们有(n-2)/2对数之和为n,还有一个n,所以当长度len为奇数时,我们可以选k+(len-1)/2个和为n的原创 2020-07-27 19:43:21 · 110 阅读 · 0 评论