自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 美丽序列(Dp)

具体地说:for each i, 1

2023-07-06 15:05:30 362

原创 Magic Maze(dp+dfs)

首先看到这个问题肯定会想到用dfs加动态规划来做(因为有不同的路径,又要求最大值) 但最开始我就根据自己想的 先用start数组找到起点 再从起点依次使用dfs找到路径再找到最大值。

2023-07-06 11:11:50 198

原创 合并回文子串(区间dp)

输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可。

2023-07-04 17:07:02 459

原创 B. Password(KMP)

同时,在所有可以被接受的子串变形中,Asterix选择了最长的一个(因为Asterix喜欢长的字符串)当Asterix大声读出子串T时,寺庙的大门开了。(也就是说,你需要找到既是S的前缀又是S的后缀同时又在S中间出现过的最长子串)Prefix认为T是S的前缀,Suffix认为T是S的后缀,Obelix却认为T应该是S中的某一部分,也就是说,T既不是S的前缀,也不是S的后缀。输出子串T,如果T不存在,输出 "Just a legend",不包含引号。现在给你字符串S,你需要找到满足上述要求的子串T。

2023-07-04 15:37:15 173

原创 C. Logo Turtle (DP,思维)

考虑每一个命令,选择改变或者不改变,当前的决策对于以后产生的影响就是,停在了哪个位置,正朝着哪个方向。由此可以设出状态:dp[i][j][k][d]表示前i个命令,使用了j次机会,当前停留在k位置,正朝着d方向。不妨设初始位置为L,则最右可到达2×L,最左可达到0位置。给一个含有T、F的字符串,T表示转向,F表示前进1格。现在可以把其中的T改为F,或F改为T,改变n次(可重复改变某一位置的字母),问相对于起点最远能走多远。

2023-07-04 14:43:04 266

原创 C. Russian Roulette(构造)

其实打个表看一看,就知道偶数就应该先把偶数位置给安上子弹,然后再把奇数位置倒着放。但是如果总长度为奇数的话,先把最后一个位置放子弹,其他位置和偶数情况一样。你是第一个人,你希望你死的概率最小,问你怎么去设置这个子弹的位置。俄罗斯转盘,长度为n的环,有k个子弹,然后挨着对着脑袋打。第二个人会一开始随机砖圈,使得每一个位置开始都是可能的。如果死的概率一样的话,让你找到字典序最小的。

2023-07-04 09:37:27 144

原创 B. Buses Codeforces Beta Round 79 (Div. 1 Only)

给定一个数n,起点是0 终点是n,有m两车,每辆车是从s开去t的,我们只能从[s,s+1,s+2....t-1]处上车,从t处下车。问能否去到点n,并且求方案数。:因为车是无序的,所以应该优先处理最快下车的点。这样就能对后面进行更新。数据大,明显不能到达的点是没用的,离散化一下即可。设L[x]表示有多少辆车能够到达x处。

2023-07-03 10:50:01 65

原创 B. Falling Anvils ( math )

所以只需要求出y=4x以下的面积就行。可以使上面的式子成立概率。

2023-06-28 15:57:13 74

原创 D. Dot(思维+记忆化搜索dfs)

输入文件的第一行包含4个整数x,y,n,d(-200 ≤ x,y ≤ 200,1 ≤ d ≤ 200,1 ≤ n ≤ 20)-点的初始坐标,距离d和向量的数量。在第二个测试中,Dasha在她的第一次移动中将点移动到坐标(2, 3),Anton输掉游戏,因为他只有一种可能的移动方式-相对于直线y = x进行反射。首先我们可以发现题目中的点可以移动到y=x的对称点这条件没用,因为一个人使用了这个条件,另一个人也可以使用它使点回到刚刚的位置。如果在某个玩家的回合中,点到坐标原点的距离超过d,则该玩家输掉游戏。

2023-06-27 16:52:00 213

原创 D. Optical Experiment

第一行包含一个整数n(1 ≤ n ≤ 106),表示光线的数量。他展示了这样的情况:有些光线的组合,其中每一条光线与组合中的其他光线都相交。一个好奇的学生问教授:“老师,是否存在一些光线的组合,其中所有光线都与组合中的每一条光线相交?第一个测试用例的输出是3,因为光线1、4和3是彼此相交的光线,即1与4和3相交,3与4和1相交,4与1和3相交。因此,该组合中的每条光线都与其他光线相交。所有光线从第一面的孔进入,从盒子的另一面的孔出射。输出包含一个整数,表示光线中最大的相互相交的组合中光线的数量。

2023-06-27 15:26:29 84

原创 G. Hits Different(DP)

给出一个三角形矩阵,类似于数字三角形的dp模型,拿走任意一块,他的[i - 1, j] [i - 1, j - 1]都会受到影响。

2023-05-18 15:16:08 132

原创 H. Don‘t Blame Me(dp and)

题意:给你一个数组有n个数,问你能有多少个该数组的在子序列and操作后,2进制刚好含有k个1。ai最多只有63,所以直接开二维数组。

2023-05-18 14:52:25 158

原创 B. Platforms(数学)

思路:读懂题意还是很好写的,就是判断跳到哪里是空的,枚举就行,如果一直枚举k*d一定是会t的,中间需要优化一下,到达一个平台后,可以优化一下,计算到。,直接跳到从k1开始枚举就行。

2023-05-17 15:26:17 49

原创 F. Array Stabilization (GCD version)

【代码】F. Array Stabilization (GCD version)

2023-05-17 10:04:13 70

原创 D. K-good(CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!))数学推导!

因为n*2是一个偶数,所以k和(m*2+k-1)肯定是一奇一偶,为了解出k,我们可以将n*2一直除2,知道为奇数,那么最后出现了两个值,一个是k,一个是(m*2+k-1),取min那个就是k,我们需要的答案。我们可以想象成一段连续的数字,肯定是满足题意的,然后它这个数组一定是等差关系。假设为k,那么这一段数字的和。

2023-05-02 16:06:31 65

原创 E. Number With The Given Amount Of Divisors

因此,如果要使得该整数恰好有n个因子,那么必须满足上述各个指数ai都应当是0或1,且所有指数之积等于n。其中p1,p2,...,pn均为不同的质数,a1,a2,...,an均为正整数。则该整数一共有(a1+1)(a2+1)...(an+1)个因子。的整数,因为它有4个因子:1,p1,p2,和p1*p2。而如果我们选择p1=2,p2=3,则所求的最小整数为。要找到恰好有n个因子的最小整数,我们可以利用质因数分解的思想来求解。举个例子,如果n=4,则我们需要找到一个形如。题意:求出整好有n个因子的最小整数。

2023-04-25 20:08:29 61

原创 D. Mysterious Present(Codeforces Beta Round 4 (Div. 2 Only))

个信封的长和宽,以及一张卡片的长和宽,要求选出最多的信封,并且这些信封的长和宽都比前面的信封要大,并且最小的信封能够装下这张卡片。输出这些信封的数量和编号。数组中寻找最大的值,即为所求的答案。为了输出方便,我们在转移的过程中,记下每个状态对应的决策节点。考虑到这是一道动态规划题目,我们需要先对原问题进行拆分。具体而言,我们需要找到最长的一个信封序列。个信封结尾的最长信封序列长度。个信封结尾的最长信封序列的前一个节点的编号。数组,就能得到构成最长信封序列的信封的编号。数组的遍历过程中,一边更新。

2023-04-25 10:22:50 440

原创 C. Zero Path(Codeforces Round 801 (Div. 2) and EPIC Institute of Technology Round)

然后想一下,我们左上角到右下角,如何为0,我认为0应该是在到达最下角最大值和最小值范围内。如果在这个范围内部那么一定是YES.否则肯定是不行的。思路:从左上角到右下角总共是要走(n+m-1)步的,如果想要所有的和为0,那么(n+m-1)一定是一个偶数。如果不是偶数那么一定是NO的情况。所以转化为了求取最大值和最小值。

2023-04-23 16:10:58 57

原创 D. Color with Occurrences(Codeforces Round 811 (Div. 3))

的最大值开始,往前遍历,直到最后一次出现位置,中途如果遇到已经染过色的字符,则直接跳过。在遍历的过程中,需要维护当前遍历到的位置。首先,我们要想到这是一道字符串的问题,需要用到字符串匹配。因为每次只能选择一个字符串染色,因此很自然的想到贪心策略。的出现位置染成红色。求染成红色的最小次数以及染色方案。的最大值,表示最后一次使用字符串。,则表示所有字符均已染色,结束遍历。为了使染色的次数最小,需要从。中所有字符染成红色,输出。开始染色,如果没有使用第。,以及已经染色的字符的数量。表示染色操作中选用的。

2023-04-23 11:31:40 208

原创 matlab求解整数规划

分类:(1)变量全部限制为整数时,称为纯(完全)整数规划;(2)变量部分限制为整数时,称为混合整数规划。(1)原线性规划有最优解,当自变量限制为整数后,其整数规划解出现下述情况。定义:数学规划中的变量(部分或全部)限制为整数时,称为整数规划。原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致。若在线性规划模型中,变量限制为整数,则称为整数线性规划。(2)整数规划最优解不能按照实数最优解简单取值而获得。分枝定界法——可求完全或混合整数线性规划。隐枚举法——求解“0-1”整数规划。

2023-04-22 23:17:30 2154

原创 D. Problem with Random Tests(思维)

【代码】D. Problem with Random Tests(思维)

2023-04-21 17:06:21 69

原创 B. Present(Codeforces Round 626 (Div. 1, based on Moscow Open Olympiad in Informatics))

【代码】B. Present(Codeforces Round 626 (Div. 1, based on Moscow Open Olympiad in Informatics))

2023-04-21 10:16:27 49

原创 B. Make Them Equal(Codeforces Round 673 (Div. 1))

是需要考虑的,也就是每个ai最多操作3次。,所以我们让所有除了a1的数都进行3次操作。如果不需要操作,我们就输出无关的操作,废物操作。也就是操作后转移0,例如:4 1 0,5 1 0,这种的。2: 每个ai都是小于i的,例如n=5, a[]={0,1,2,3,4}。因为每个数都是小于 i 的,所以不能进行有效操作。然后添加一个无关操作(1,1,0)。这样最后达到了数组是 {sum,0,0,0...};首先判断是否能够操作达到目的:即所有的数都相等。,然后再进行操作:把ai转移到a1。

2023-04-20 16:48:50 332

原创 E. New Game Plus!(Technocup 2021 - Elimination Round 2)

【输入输出】输入的第。

2023-04-19 21:15:17 603

原创 C. Perform Easily(Technocup 2021 - Elimination Round 1)

然后我们考虑把目前的所有数中最小的拿出来,让后找到对应 bi​ 中的其他取值中排名比它大 1 的那个,然后重新放回堆中,更新答案。显然,我们这种做法可以使得我们所选的数尽可能的集中,所以可以得到最优解。给定数组a(长度为6)然后给定长度为n的数组b,然后把bi​-a(1−6)​中任意一个,使得处理后的b数组跨度(最大值减最小值)最小。我们考虑一开始先将所有取值中最小的全部拿出来,放到一个小根堆中,并且维护其最大值。令最大值为 mx,最小值为 mn,则目前的答案为 ans=mx−mn。

2023-04-19 17:07:50 48

原创 B. Orac and Medians(Codeforces Round 641 (Div. 1))

询问a1​a2​⋯an​能否通过若干次将任意区间全部赋值为其中位数这个操作,来使得整个序列全部变为k。(中位数指第⌊2∣s∣1​⌋小的数)多次询问,每次第一行两个整数,n和k;第二行n个整数,a1​a2​⋯an​。1≤n≤1051≤k≤1091≤ai​≤109,并保证所有询问中n的和不超过105。

2023-04-19 15:35:07 790

原创 B. Stoned Game(Codeforces Round 666 (Div. 1))博弈

假设不被拿干净,必定是出现了最多石子的那堆石子数目大于其他之和的状态(例如最终状态),逆推回去可以发现每两次取石子就有一个人取了这堆,逆推至初始状态与“否则”矛盾,不成立。t组数据,每组数据给出n和a,输出谁必会胜利。特殊的,第一次取可以取任何一堆的石子。故 ai​≤sum 时最终状态必定是全部石子被取完,只需判断总石子数奇偶即可。1:当 ai​>sum-ai 时,先手只需要占住第 ai 堆必胜。当前先手取完要取的石子之后使对手无路可走时,先手获胜。有n堆石子,每堆分别有ai​个石子。

2023-04-19 10:46:46 83

原创 Codeforces Round 816 (Div. 2)(C. Monoblock)

给定一个数组a,定义g(l,r)为,子数组中a[l],a[l+1],…,a[r],相等连续段的个数。接着把第二个数修改为a[2],此时,如果a[2]!=a[1],那么所有包含a[2]和a[1]的区间,g函数都会加1。如果修改一个元素,且该元素与其相邻元素不等时,那么该区间的g函数值会加1。如1,2,2,1,相等连续段有[1],[2,2],[1],共3个。如2,2,2,1,相等连续段有[2,2,2],[1],共2个。先来看看全部相等的元素的数组,它的h函数的值。对于一个元素全部相等的区间,它的g函数值为1,

2023-04-18 14:34:29 199

原创 Codeforces Round 845 (Div. 2) and ByteRace 2023(C. Quiz Master)

可以发现,一定存在一种最优方案,使得选出的数在 a 排序后的序列中是一段连续区间,且极差最小。因为如果存在一种最优方案选取的不是连续区间,那么将这些数最左端和最右端内全部选取,仍然符合题意,极差不变,但是选择的数是连续区间。多组询问,一个长为 n 的数列 a 和一个数 m,求在数列 a 中删掉几个数,使得从 11到 m 的所有数组成的集合是数列 a 中所有数的因数组成的集合的子集,求删数后数列 a 的极差。因此将 a 排序后,考虑双指针,因此我们只需要维护一段连续区间是否符合题意。

2023-04-17 15:14:32 98

原创 D. Range = √Sum(Codeforces Round 836 (Div. 2))

一个很有趣的题。。

2023-04-14 21:37:01 65

原创 Educational Codeforces Round 144 (Rated for Div. 2)D. Maximum Subarray

考虑不取第i个位置的情况,当前位置是需要 - x 的,那么dp(i,j) = max(0,dp(i-1,j)) + A[i] - x ,需要注意的是如果 i == j 时,此时是不合法的,因为当前不取的话,前i - 1个数字不可能选择 j个数。接下来我们考虑取第i个位置的情况 ,那么如果前面i - 1结尾的字段和大于0那么取dp(i-1,j-1)一定是最优的,否则我们从0开始,可以得出 dp(i,j) = max(0,dp(i-1,j-1)) + A[i] +x。那么我们可以分成三种情况。

2023-04-14 17:24:10 97

原创 Codeforces Round 655 (Div. 2)(D. Omkar and Circle)

一个令我极致愚蠢且自信的题

2023-04-14 16:33:57 63

原创 D. Many Perfect Squares

关于p,其实p就是a[i]-a[j]的较小的因子部分。过程中需要判断p+q是否相加为偶数以及q-p是不是偶数,因为n和m需要为整数。先对数组排个序,首先它最少一定是有一个的,然后判断数组中的两个数之间能不能求取确定一个x满足两个,然后再枚举每个数组加上这个x是不是完全平方数。求取最大结果就行了。所以a[i]-a[j]=n*n-m*m =(n-m)*(n+m) (这里我们排序后默认a[i]>a[j].假设:a[i]+x=n*n a[j]+x=m*m;所以a[i]-a[j]=p*q;

2023-04-13 17:49:02 361

原创 P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

今天的数学课上,Crash 小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和blcmab表示能同时整除a和b的最小正整数。例如,lcm6824。回到家后,Crash 还在想着课上学的东西,为了研究最小公倍数,他画了一张 $ n \times m$ 的表格。每个格子里写了一个数字,其中第i行第j列的那个格子里写着数为lcmij。看着这个表格,Crash 想到了很多可以思考的问题。

2023-04-13 15:58:50 351

原创 [HAOI2011]Problem b(莫比乌斯反演)

题目链接:https://www.luogu.com.cn/problem/P2522。

2023-04-13 15:51:47 474

原创 F. Bouncy Ball(Codeforces Round 859 (Div. 4))

首先反弹一定是有一个周期的,最多不过n*m.判断如果出现一次周期直接输出“-1”即可,就是不能到达目的点,周期判断就是这个点有没有再次出现并且方向与之前出现的一致,否则是不能够视为周期的。然后就是模拟就行了,不是很难。题意:给你一个n*m大小的网格,再给你一个起始点和目的点,然后一个起始方向,这个起始点能不能在反弹的过程中到达目标点。反弹的过程中是碰到边界,折射性反弹。

2023-04-12 17:13:43 140

原创 VK Cup 2022 - Отборочный раунд (Engine)(C. Equal Frequencies)

思路:因为都是小写字母,所以记录每个字母出现的次数,然后去找出最小的操作次数,然后排个序,按照出现次数从高到低,关于最小操作次数,首先从一个字母开始,枚举到该字符串中出现26个字母,出现字母个数一定能整除n,所以时间复杂度几乎可以不计,假设x为最后得到的字符串的字符个数,因为排过序,所以前x个就是最后串中出现的字符,所以n/x就是每个字符出现的次数,如果想要求最小解,一定要用次数高于n/x的去减去n/x,还有那些很少的全改成前x个字符,操作次数就是次数高于n/x的(ai-n/x),和x之后的字符个数。

2023-04-10 17:35:06 354

原创 C. Li Hua and Chess(Codeforces Round 864 (Div. 2))交互式

如果3次询问的话:首先询问C点(1+x,1+x),然后询问A点(1+x,1+x-xx),或者B点(1+x-xx,1+x),答案不是A就是B,如果询问了A,第二次直接输出B就行,相反输出A就行。首先我们开始从(1,1)开始判断,我们可以稍微想一下,首先都从(1,1)去猜,判断国王与(1,1)的位置。题意:对于输入你每询问一次点,会给出你一个离你询问点的最短距离,让你输出你寻找到过程点。如果两次询问的话 ,答案不是A点就是B点。

2023-04-09 10:11:56 179

原创 [HNOI2009]有趣的数列(分解质因数求卡特兰数)

分解质因数求卡特兰数

2023-03-31 14:52:25 123

原创 吴老板教课(卡特兰数,组合数学,逆元)

先普及一下什么是卡特兰数:给出一个n*n的正方形棋盘,求从左下角到右上角的不经过对角线的所有走法刚好是F[n],即C(2n, n)-C(2n, n-1)吴老板给大家的任务很简单,结合以上公式,求出第1项到第n项的卡特兰数的和(结果对100000007取模)h(n)= C(n, 2n) - C(n +1, 2n) (C是组合数符号)(注意:如你不会逆元,那你就需要自己推出卡特兰数另一个递推公式了)输出一个整数代表前n个卡特兰数的和。令h(0)=1,h(1)=1,就是卡特兰数前n项和。

2023-03-28 21:36:24 289

reasie.py

reasie.py

2023-06-02

空空如也

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

TA关注的人

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