chenfy27的刷题记录

导航

2024年3月15日 #

abc135D 模13余5的数的个数

摘要: 给定一个由0~9以及?组成的字符串,其中的?可以替换成0~9中任意1个数字,问有多少种情况使得这个数字模13的余数为5?结果对1e9+7取模。注意允许s有前导0。 1<=|s|<=1e5 记dp[i][j]表示前i个数字构成的数,模13余j的方案数。如果s[i]是数字,直接转移;如果是问题,枚举0~ 阅读全文

posted @ 2024-03-15 20:38 chenfy27 阅读(34) 评论(0) 推荐(0)

2024年3月14日 #

leetcode1755 最接近目标值的子序列和

摘要: 给你一个整数数组nums和一个目标值goal,需要从nums中选出一个子序列,使子序列元素总和最接近goal,返回abs(sum-goal)可能的最小值。数组的子序列指通过移除原数组中的某些元素(可能全部或无)而形成的数组。 1<=nums.length<=40; -1e7<=nums[i]<=1e 阅读全文

posted @ 2024-03-14 20:19 chenfy27 阅读(13) 评论(0) 推荐(0)

leetcode2035 将数组分成两个数组并最小化数组和的差

摘要: 给你一个长度为2n的整数数组,需要将它分成两个长度为n的数组,分别求出两个数组的和,并最小化两个数组和之差的绝对值。nums中每个元素都需要放入两个数组之一,求最小的数组和之差。 1<=n<=15; -1E7<=nums[i]<=1E7 直接暴搜的话最坏时间复杂度是O(2^30),会TLE,可以使用 阅读全文

posted @ 2024-03-14 20:11 chenfy27 阅读(50) 评论(0) 推荐(0)

2024年3月12日 #

abc234E 不小于X的数位构成等差数列的最小数字

摘要: 给定X,求不小于X的整数,满足各个数位正好构成等差数列。 1<=X<=1E17 直接枚举首项和公差,找出所有可行的解,取最优值即可。 #include <bits/stdc++.h> using namespace std; #define int long long #define rep(i,a 阅读全文

posted @ 2024-03-12 21:57 chenfy27 阅读(15) 评论(0) 推荐(0)

abc221D 统计在线游戏人数

摘要: 有一款在线游戏,共有n名注册玩家,第i名玩家从第a[i]天开始上线,持续在线b[i]天。现在要统计在线人数为x[i]的天数,其中1<=x[i]<=n。 1<=n<=2E5; 1<=a[i],b[i]<=1E9; 先按差分更新,然后求前缀和还原,再遍历一次统计答案,时间复杂度O(n)。 #includ 阅读全文

posted @ 2024-03-12 21:14 chenfy27 阅读(29) 评论(0) 推荐(0)

abc204D 双烤箱烹饪的最短时间

摘要: 需要烹饪n道菜,第i道菜耗时t[i],有两个相同的烤箱,一个烤箱同一时间只能烹饪同一道菜。求烹饪完所有菜所需的最短时间? 1<=n<=100, 1<=t[i]<=1000 01背包变形,需要选出部分菜用烤箱1,其他用烤箱2,两者的最大值为结果,取所有可能的结果的最小值,即为答案。这里dp[i]表示总 阅读全文

posted @ 2024-03-12 21:02 chenfy27 阅读(32) 评论(0) 推荐(0)

abc222D 夹在两升序数组之间的升序数组个数

摘要: 给定长度为n的两升序数组A[i]和B[i],其中A[i]<=A[i+1],B[i]<=B[i+1],并且0<=A[i]<=B[i]<=3000,找长度为n的数组C[i],满足A[i]<=C[i]<=B[i]。求满足该条件的C的个数,结果对998244353取余。 1<=n<=3000 设dp[i][ 阅读全文

posted @ 2024-03-12 20:57 chenfy27 阅读(11) 评论(0) 推荐(0)

abc336F 旋转矩阵谜题

摘要: 有一个H行W列的矩阵,记n=H*W,每个格子分别有个[1,n]内的数字,对应1~n的一个排列。每次可以选择大小为(H-1)*(W-1)的子矩阵旋转180度。 给定初始状态,问20步以内是否可以将它还原为1~n的排列?如果可以,输出最小步数,否则输出-1。 3<=H,W<=8; 1<=a[i][j]< 阅读全文

posted @ 2024-03-12 15:21 chenfy27 阅读(55) 评论(0) 推荐(0)

2024年3月11日 #

arc144B 最大化加减操作后的最小值

摘要: 给定数组A[i],以及两个数a和b,其中a<=b,每次可以任选一对下标(i,j),让A[i]增加a,同时A[j]减少b,操作次数不限。求能得到的min(A[i])的最大值。 由于每次加得少、减得多,总和必收敛,因此解一定存在,可以二分答案,条件是增加的次数不超过减少的次数。 #include <bi 阅读全文

posted @ 2024-03-11 21:52 chenfy27 阅读(10) 评论(0) 推荐(0)

abc261D 抛硬币的最大得分

摘要: 抛n次硬币,对于第i次结果,如果正面朝上,得分为X[i],否则不得分。另外,还设置了m种连正奖励,即如果出现连续C[i]次正面朝上,可额外获得Y[i]得分。求可以获取的最大总得分。 1<=n,m<=5000; 1<=X[i],Y[i]<=1E9; 1<=C[i]<=n 记dp[i][j]表示前i次抛 阅读全文

posted @ 2024-03-11 21:47 chenfy27 阅读(64) 评论(0) 推荐(0)