自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 namomo 2022 ICPC jinan J Skills

第一行输入样例数,每个样例的第一行输入有n天,接下来的n行是每天如果学习对应技能会获得的提升点数,我们的帅yao先生有三个技能,泡妞,打lol,写题。我们设置我们的f[i][j][k][z]表示前i个数里,第一个技能有j天未学过,第二个技能有k天未学过,第三个技能有z天没学过,为之后来看我们四维的话数组会爆,考虑到我们有一个技能始终是刚学的,那这四维其实可以转变为第四维记录我们学了哪一个技能,这个没学过的时间一定是0天,其他两维是另外两个多久没学了。代码里有注释,细看代码。

2024-01-24 17:37:02 443

原创 namomo Codeforces Round 225 (Div. 1) E Vowels SOS DP

yao有24种字母,接下来他有一连串的三个字母组成的单词,yao忘了哪些是元音,所以现在每个字母都可能是元音,即元音集可能是a/ab/b/abc/……如果把每个可能的元音集应用到单词中,包含了任意一个或多个元音的单词就是好的,yao想把每个元音集对应的好的单词都记录下来,将他们全部异或和,输出异或和结果。当且仅当其包含至少一个元音字母,于是考虑不正确的单词:不包含任何一个元音字母,也就是属于这个元音字母集合的补集。于是对于每个补集,考虑有多少个单词属于它,就是不正确的单词数。这一步可以通过高维前缀和完成。

2024-01-24 17:34:35 370

原创 namomo TLE - Time Limit Exceeded SOS DP

给定n,m和c[i],要求构造一串序列,a[i],要保证,a[i]小于2的m次方,大于0,,a[i]不能整除以c[i],a[i]&a[i+1]==0,求这种序列的方案个数,取模于1e9,n<50,m<15。(高维前缀和DP)//在开始前我们应该学到了到,高维前缀和是针对做的事情是 i&j==i(也就是i是j的子集)有多少种情况。//那么这里,我们发现题面要满足a[i]&a[i+1]=0,则f[i]是从上一次结果中。//所有满足i&j=0的地方转移过来的i&j=0即i&(~j)=i,即i为~j的子集,

2024-01-24 17:32:21 348

原创 洛谷 P1364医院设置 树形DP min型

然后从树根开始再进行一次DFS枚举医院的位置并求所有居民的路程之和,每次当医院从当前节点向子节点i移动时,以子节点i为根的居民到医院的距离会减少1,共减少cnt[i],其他节点的居民到医院的距离会增加1,共增加sum - cnt[i],这里sum是居民数量之和,因此总路程增加的量为sum - 2 * cnt[i],遍历完所有的节点并取最小值就是答案。这个题目其实就是等同于求树的重心,然后我一开始想的是树的中心的升级版,他每个节点有不同的值,那还是用树的中心的思路,使用换根DP,分析比较长,代码贴在下面。

2023-10-03 02:35:33 85

原创 洛谷 P1466 集合 01背包类 计数类

其实就是一个01背包,dp[ I ] [ j ],i表示只选前i项的数,他们的和正好是j的方案总数,体积是所有数的和,输出的时候输出总和的一半的体积,考虑第i个数选不选,那么方案数就是选的加上不选的方案数,但是还需要注意,数字之和是偶数的时候才有解,和是奇数的时候没有办法完整地分成两半哦。现在有从1-n的连续整数集合,能划分成;两个子集合,要保证划分出的两个子集合内的元素和是相等的。问有多少种划分集合的方式。

2023-10-03 02:35:03 67

原创 洛谷 p1057 传球游戏 线性dp 计数型

605宿舍一起做游戏,游戏规则是这样的,n个同学围成一圈,当学长开始狗叫时开始传球,每个同学可以把球传给左右同学中的任意一个,当学长不再狗叫的时候传球停止,球在手中的同学需要表演节目。现在从yao开始传球,yao问有多少种不同的传球办法可以使球在传了m次之后又会到yao手里。605很大,可能有3-30个舍员。任何一个球只能从左边或者右边传来,那球传到手上的路径数就是左边同学传过来的的路径数与右边传过来的路径数之和。但是要特殊判断一下1和n,因为1的上一行是n,n的下一行是1。

2023-10-03 02:34:28 65

原创 洛谷 P1077 摆花 多重背包模型 计数型dp

其实每个花花最多放a【i】盆,就是物品i有a【i】个,摆m盆就是背包容积为m;物品的体积是1,这里是计数型,就无价值之分。f【i】【j】【k】表示前i种花中,现在选到了第j种花,选了k株,这就是赤裸裸的多重背包啊。谷神开了个花店,为了吸引谷神喜欢的小妹妹,他要在花店门口摆上m盆花;谷神有n种小妹妹喜欢的花,标号1-n,规定第i种花不能超过a【i】盆,摆花时花按从小到大依次排放,问总共有多少种不同的摆花方案。只不过现在是计数型,每次不是取max,而是把上一个状态的方案数加到这个状态里。

2023-10-03 02:33:53 60

原创 洛谷 P1387 最大正方形 不知道什么DP 用二维前缀和可以做

这道题可以用二维前缀和来做,得出来那个矩形内数的和是否为边长的平方,不是就说明不全为1,枚举之后记录最大的;用DP做就是f【i】【j】表示以节点i,j为右下角,可构成的最大正方形的边长。如果访问的点是1的话,更新这个点,这个点的f【i】【j】是三块的最小值,如果三块的最小值相同则表示旁边都是1,那么就可以比他们大1;同时在更新的时候就记录ans,找最大。题目给一个n*m的01矩阵,从中找到一个全为1的组大正方形,要求输出正方形的边长。P1387 最大正方形 不知道什么DP 用二维前缀和可以做。

2023-10-03 02:33:21 35

原创 洛谷 p2327 扫雷 线性dp 计数型

现在来到了宋佬最爱的游戏,宋佬觉得yao太笨了,于是觉得给yao玩一个简单版扫雷,这个扫雷只有两列,第二列的数字是告诉你的,每个数字表明了周围八个格子的雷的个数(第二列无雷),现在要问第一列隐藏的雷有几种排列方式。这也是一个佬的思路,用四维的f[ I ][2][2][2]来表示第i行的位置,【2】【2】【2】分别表示i-1,i,i+1的位置上有没有雷,1表示有雷,0表示没有,这样一来就非常好转移了。最后a【n】==0/1/2/3的情况要分开来转移一下,因为这里的最后一位没i+1了,不能放地雷。

2023-10-03 02:32:46 43

原创 洛谷 P1564 膜拜 线性dp min型

在输入的时候把2改成-1,这样1代表追随宋佬,2代表追随谷神,同时处理前缀和数组,f[ I ]存的是前i个人最少需要用多少个机房,那么如果前缀和sum[ I ]-sum[ j ]符合分房间的条件(绝对值小于M,或者i到j都相同),f[ I ]=min( f[ I ] ,f[ j ]+1)P1564 膜拜 线性dp min型。

2023-10-03 02:31:47 39

原创 洛谷 P6205 [USACO06JAN] Dollar Dayz S

这个题相当于说是每个东西的价钱都告诉你了,然后可以买无限次一个东西,那么我们很自然的想到完全背包,相当于说是我们之前选了j-i元的东西的方案+买了一个价值为i的物品的方案,所以转移方程就很好想f [j ] += f [ j – I ];yao去商场买东西,有k种东西,东西的价格分别为1,2,……k,yao手里有N元,必须全部花完,他有多少种购买方式呢。同时要注意,这里的数字超级大,爆longlong 所以要用__int128 编写快读快写。

2023-10-03 02:31:07 62

原创 洛谷 P1481 魔族密码

i int integer 这种能组成词链,前面都是后面词的前缀,像integer intern就不是词链,现在要做的就是在一个给定的单词表中取出一些词,组成最长的词链,求最长词链的长度。大佬的思路我惊为天人,可以把每一个刺符传看作一个属,其中如果a字符串包含b字符串,可以看作a比b大,然后就可以等价于做最长上升子序列了,最后再统计一遍答案;P1481 魔族密码 最长上升子序列 max型。

2023-10-03 02:30:19 112

原创 洛谷 P1509 找啊找啊找GF

感觉类似于01背包,不过01背包是一维约束,这里是二维约束,同时是钱和人品不能超过,价值其实也有两个,一个是妹子个数,+1+1,一个是花费时间,但是时间是越少越好。所以我们想到开两个二维数组,一个存数量,一个存时间,如果能多泡妹妹就多泡,同时把花费的时间加到ftime[ ]中,:航有m的钱和r的人品,现在要去泡妹,每泡一个妹妹需要花费对应的钱和人品值,还需要一定的时间,航想在泡到最多妹子的同时又想让花费的时间最少(真是acmer的yy罢了),输出他最多能泡到的妹子的个数和他花费的最小时间。

2023-10-03 02:29:43 56

原创 CF Problem - 1842C - Codeforces

丁真可以选择两个颜色值一样的球, 删除这这两个球之间的所有球(包括这两个球)这个操作可以进行无限次。】是固定的颜色,所以只要找到对于这个颜色目前为止的最优更新是什么就好,也就是说我们在更新。个数最多能删掉的球数再加上这一段删掉的球数然后我们把。n个球排成一列, 每个球都有一个特定的颜色值。然后我考虑到其实在一次更新中,问你最多能删多少个球。

2023-10-03 02:28:52 46

原创 Codeforces Round 897 (Div. 2)

给一个长度为n的序列A,需要我们构造一个长度也为n的序列B,其中,序列B必须为1-n各个数的随机顺序序列,需要使我们Ai-Bi的不同的数字数量最多,比如A是1,2,3,如果B是1,2,3,那么差就是0,0,0,不同的数字个数只有1,如果B设置为3,2,1,则差为-2,0,2,不同的数字个数为3。需要输出构造的B序列。我们使最大的数减去最小的数,第二大的数减去第二小的数,以此类推,就能得到最多不同的数字,因为这样设置之后大的减小的,差值就会进一步缩小;我们使用pair数组对应位置。

2023-09-12 01:17:51 454 2

原创 Codeforces Round 896 (Div. 2)

看到异或 0 ,突然一瞬间就来感觉,想起来自己和自己异或得0,于是直接想到把l取1,r取n,取第一次之后所有的数都是被同一个总异或和替换掉,取第二次l=1.r=n时把所有数异或到一起,然后直接开始爆写,写完直接交了个wa1哈哈哈,原来时我没考虑奇数,因为 偶数个相同的数异或到最后都是0,奇数个数相同的书异或到最后时多一个的,再考虑就觉得要先搞掉一个,留下偶数个的再用那个方法。给你一个n个数字的数组,你可以执行至多八次操作,每次操作可以选取一个l和r,将l到r间的所有数替换为原来l到r之间数的总异或和。

2023-09-11 01:48:27 377 2

原创 Educational Codeforces Round 153 (Rated for Div. 2) A - C

将‘(’视作1,‘)’视作0,发现如果括号序列不严格单调递减,即类似于“(((())”=111100,那就可以构造为“()()()()()()”,若不为不严格单调序列,即类似于“())(”=1001,那就构造为“(((())))”定义正规括号对为“()”、“()()”、“(())”此类的可以匹配的括号对,如”)(“是不正则的,现在输入给你一个指定括号序列,询问你是否能构造出一个两倍长度的括号序列,做到构造括号序列不包含所给括号序列。输出(面值为k的硬币缺少的个数 - (面值为1的硬币多出来的个数/k))

2023-08-18 11:53:03 124 2

空空如也

空空如也

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

TA关注的人

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