自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022广西师范大学暑期训练赛 B.签到在这里

2022-09-06 09:49:40 227 1

原创 Educational Codeforces Round 134 (Rated for Div. 2) A-D

ddl

2022-09-04 22:35:20 290

原创 HDU-3832.Earth Hour

最短路┭┮﹏┭┮

2022-09-02 22:16:12 174

原创 Educational Codeforces Round 83 (Rated for Div. 2)D. Count the Arrays

组合数学

2022-09-01 22:13:45 104

原创 洛谷P7119 Mivik 的游戏

种树

2022-09-01 13:43:55 865

原创 Codeforces Round #131 (Div. 1) C. Relay Race

打牌

2022-08-31 10:16:24 233

原创 Just another Robbery

打牌

2022-08-30 22:25:31 107

原创 Codeforces Round #726 (Div. 2)A-E1

Codeforces Round #726 (Div. 2)A-E1

2022-08-29 13:05:33 114

原创 P1034 [NOIP2002 提高组] 矩形覆盖

P1034 [NOIP2002 提高组] 矩形覆盖

2022-08-27 11:37:18 272

原创 洛谷P2471 [SCOI2007] 降雨量

洛谷P2471 [SCOI2007] 降雨量

2022-08-25 11:02:36 277

原创 Codeforces Round #491 (Div. 2) E.Bus Number

Codeforces Round #491 (Div. 2) E.Bus Number

2022-08-22 22:01:47 272

原创 Codeforces Round #813 (Div. 2) A-C、E1

Codeforces Round #813 (Div. 2) A-C、E1

2022-08-15 13:03:35 422

原创 牛客寒假算法基础集训营4-I.爆炸的符卡洋洋洒洒

标签:动态规划思路本题比较容易看出来是01背包的变形注意到a的数据范围很大,dp数组是肯定存不下的,但是k的范围很小,而本题中要求魔力消耗总和是k的倍数,这就意味着如果a[i]%k==t,那么a[i]和t的贡献是一样,那么我们可以在输入a的时候直接对它取模,然后定义dp[i][j]为前i个符卡的魔力消耗总和膜k为j的最大值代码实现注意转移的时候,j-a[i]可能会小于0,这时不能直接膜k,而是要先加上一个k再取模代码如下:#include<stdio.h>#include&lt

2022-02-19 22:38:19 167

原创 牛客寒假算法基础集训营6-J.牛妹的数学难题

标签:组合数学思路这个式子指的是n个数中选k个数相乘,所有组合的结果相加而注意到本题a的范围只有三个数,这就大大降低了题目难度,如果某个组合中有0,那么这个组合对最终的答案贡献为0,所以我们可以直接不管为0的项,在其余的项中选择即可我们假设为1的项有t1个,为2的项有t2个,如果选择i个1,方案数为C(t1,i)那么就需要选择k-i个2,方案数为C(t2,k-i),为1的项不会对组合的贡献产生影响,所以这个组合的贡献就是2k-i,这种选法的总贡献就是C(t1,i)* C(t2,k-i )* 2k-

2022-02-19 14:21:03 191

原创 牛客寒假算法基础集训营4-A.R

标签:双指针思路由于要求的子串不含"P",所以"P"将整个字符串分成了好几段子串,所求的方案数应当是每个子串的方案数的总和本题可以枚举右端点,当遇到"R"时,让cnt++,当遇到"P"时,将cnt清零,并且记录该位置last,当cnt>=k时,我们从记录的位置开始找第一个不满足条件的位置now,方案数即为now-last(因为这个区间肯定是满足条件的),例如k=3,PBBRRRP,方案数为3,也就是第一个R的位置减去第一个P的位置代码实现#include<stdio.h>#i

2022-02-18 23:07:04 106

原创 codeforce - Vasya and String

标签:尺取,贪心题目大意给定一个长度为n(1<=n<=100000)且只包含a和b的字符串和一个数字k(0<=k<=n),最多能更改k个字符,问能得到最长的只包含一种字符的子串长度是多少思路首先思考怎样修改能得到最大的长度,从贪心的角度思考,因为最终要求的字符串只包含一种字符,假定为a,那么显然将这k次修改全部用到b上最佳,另一种情况同理,最后在这两种情况中取最大值即可具体修改过程要用到尺取法,以修改a为例,每次移动右指针,当找到a时,让t++,当t>k时,说明修

2022-02-18 14:33:15 408

原创 牛客寒假算法基础集训营5-A.疫苗小孩

标签:二分思路看到数据范围,显然不能三针都枚举疫苗一共只能接种三针,且第二第三针才会对手速产生影响,而三针疫苗的接种是有先后顺序的,

2022-02-17 23:12:40 129

原创 牛客寒假算法基础集训营6-B.价值序列

标签:数学,思维思路题目实际上可以转化为在不改变数组顺序的情况下删掉某些数,使得剩下的数组的价值与原数组相同,所以只需要找出有多少数可以删掉先看一组例子,a1到a6分别为2,3,4,5,3,2,可以发现其中,a2=3,a3=4,a5=3能够删除,其实也就是单调区间中的数可以删掉,而区间边界,也就是拐点,是不能删掉的,因为删掉之后一定会导致价值变小(可以借助数轴理解),注意是变小,也就是说不存在前边删掉一个拐点使价值变小,然后后边又删掉一个拐点再将价值补回来这种情况,除了区间边界,数组的第一个和最后一

2022-02-17 22:06:13 273

原创 牛客寒假算法基础训练营5-D.数位小孩

标签:搜索思路虽然这个题乍一看数据范围挺大,但实际上区间中满足条件的数并不多,是dfs可以接受的范围,因为其前两个条件已经限定了很多,当某相邻两数位和不是素数时,那么包含这两个数位的数都不会去搜索搜索的实现设置了三个变量,分别存目前构造的数,上一位的数,以及目前是否至少有一个数位为1,当构造的数在给定的范围且至少有一个数位为1时答案加1而第三个条件,没有前导0,可以通过最外层循环从1到9开始实现还要注意的是,题目中1算是一个合法的答案,但是10不是,所以当两个相邻数位和为1时应当判断为不合法代

2022-02-16 21:53:03 205

原创 牛客寒假算法基础集训营4-J.区间合数的最小公倍数

标签:数论思路首先这个题不是遍历每个合数挨着求最小公倍数不会真有人这么做吧前置知识:要求多个数的最小公倍数,只需要统计每个数的素因子的次数,然后将次数最高的素因子乘起来(指素因子连同次数)。例如:求4,8,10的最小公倍数,4 = 2 * 2,8 = 2 * 2 * 2,10 = 2 * 5,素因子中2的最高次为3,5的最高次为1,那么最小公倍数就是23 * 51 = 40由于本题数据范围较小,所以用朴素的素数筛法也能过,剩下的就是暴力枚举l到r区间的数,是合数就统计其素因子的次数并更新最大值,最

2022-02-15 22:37:09 437

原创 牛客寒假算法基础集训营4-D.雪色光晕

标签:计算几何思路本题实际上就是求点到线段的最短距离,注意是点到线段的最短距离,所以可能有三种情况,设线段为ab,点为p点,过点p向ab所在直线做垂线,若垂足落在线段上,最短距离就是垂线的长;若垂足落在线段外且靠近a点,最短距离就是线段ap的长;若垂足落在线段外且靠近b点,最短距离就是线段bp的长。这里我采用的判断方法是向量点乘,即表示出四个向量ab,ap,ba,bp(注意向量点乘时两个向量需要同起点)的坐标,若向量点乘结果小于0,说明其夹角为钝角,对应的就是落在线段外的情况,反之答案就是垂线长。

2022-02-11 20:57:09 262

原创 牛客寒假算法基础集训营2-F.小沙的算数

标签:乘法逆元思路由于运算的优先级,可以发现加号将整个式子分成了多个区间且各区间互不影响,乘号所连接的数则可以划分到一个区间,而且本题中查询的值一直是整个区间,所以可以用一个数组book[i]来标记每个数对应的组,用sum[i]来保存每个组的计算结果,然后将每个组的值加起来就得到了开始整个式子的值ans,当将下标为x的数a[x]改为y时,其对应的组的值sum会变成sum/a[x]*y,而其他组不受影响由于本题需要取模且有除法运算,所以需要用到乘法逆元,最后还要注意ans取模后可能会比sum小,这样相

2022-02-08 12:47:48 100

原创 牛客寒假算法基础集训营2-A.小沙的炉石

标签:思维,二分思路首先我们要知道最多能打出的进攻牌为n和m+1(体力限制)两者的较小值,其次如果固定进攻牌的数量,将进攻牌尽量先打出时伤害最小,这时的出牌顺序应该是进攻,回复,进攻,回复…,这样打出的的伤害sum=1+3+5+…+n(这个n是指固定的进攻牌的数量)=n^2,而将进攻牌尽量后打出且将回复牌尽量全打出时伤害最大,这时的出牌顺序应该是回复,回复…进攻,进攻…,这样打出的伤害sum=m+1+m+2+…+m+n=nm+n(n-1)/2,知道伤害的上下限之后我们还需要证明的点是是否能将伤害区间

2022-02-07 20:24:05 590

原创 牛客寒假算法基础集训营1-H.牛牛看云

标签:枚举,二分,前缀和思路本题本质上就是计算一个式子的值,所以算法有很多,这里提供两种思路。第一种思路是枚举,当然不是指直接两层for循环O(n^2)的算法,因为这样会超时,注意到ai的范围很小,而且由于要计算式子的特殊性,使得我们不需要枚举每个数,而只需要知道这个数出现的次数同样可以计算出答案,那枚举范围就变成了[0,1000],这样复杂度是完全够的,需要注意的是计算的两个数相等和不相等时的次数计算是不一样的,具体解释在代码中第二种思路是二分+前缀和,式子中的ai和aj的地位是一样的(即|

2022-02-04 19:39:09 613

原创 Codeforce-GXUACM2022::GreenHand::02 G.Multiples of Length题解

标签:思维,构造给定一个长度为n(1≤n≤100000)的数列a(−109≤ai≤109),现在可以进行三次操作,每次操作选择一个区间,对于这个区间里的每个数,加上一个为区间长度的倍数的数(每个数加上的数可以不同),最终要使得数列全部为0,要求输出每次操作的区间以及加上的数思路一共只有三次操作,可以这样思考,用前两次操作来使整个数列的每个数都为n的倍数,然后最后一次操作直接选择[1,n]这个区间,最后每个数都加上相反数即可,注意到每次操作中加上的数都和区间长度有关,而想使每个数最终都变成n的倍数,

2022-01-30 20:24:34 671

原创 Codeforce-GXUACM2022::GreenHand::01 D.String Modification题解

Codeforce-GXUACM2022::GreenHand::01 D.String Modification题解标签:思维,找规律,字符串给定一个长度为n(1≤n≤5000 )的字符串,现在需要选择一个k(1≤k≤n),然后对字符串进行以下操作,对于i,i属于1到n-k+1,每次翻转区间[i,i+k-1]的字符,请你找到使操作完成后的字符串的字典序最小的k,若有多组操作后的字符串字典序相同,则输出最小的k思路先尝试模拟一下,看看能不能找到规律比如对于长度为5的字符串abcdek=1时结

2022-01-27 19:33:25 599 1

空空如也

空空如也

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

TA关注的人

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