chenfy27的刷题记录

导航

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页

2024年3月21日 #

leetcode375 猜数字大小2

摘要: A从1到n之间选择一个数字让B来猜,假设B猜数字x,如果猜对,直接结束;否则B需要支付金额x,然后A告诉B小了或者大了并继续猜。给定数字n,问能确保获胜的最小现金,无论A选择哪个数字。 1<=n<=200 区间dp,记dp[i][j]表示区间为[i,j]时获胜所需的最小现金,枚举每次猜的数字k,考虑 阅读全文

posted @ 2024-03-21 21:28 chenfy27 阅读(22) 评论(0) 推荐(0)

leetcode1771 由子序列构造的最长回文串的长度

摘要: 给出两个字符串word1和word2,需要从word1和word2分别选出某个非空子序列s1和s2,要求连接s1与s2后得到回文串,求该回文串的最大长度。 word1和word2长度在[1,1000]内。 区间dp,将word1与word2拼接起来,转换成求单个字符串的的最长回文子序列问题,为了保证 阅读全文

posted @ 2024-03-21 21:04 chenfy27 阅读(18) 评论(0) 推荐(0)

leetcode516 最长回文子序列

摘要: 给定长度为n的字符串s,求最长回文子序列的长度。 1<=n<=1000 区间dp,记dp[i][j]表示区间[i,j]能构成的最长回文串的长度,根据s[i]跟s[j]是否相等进行转移。 class Solution { public: int dp[1005][1005]; int longestP 阅读全文

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

2024年3月20日 #

leetcode3072 将元素分配到两个数组中2

摘要: 给定数组nums[n],定义f(arr,val)表示数组arr中大于val的元素个数,需要操作n次将nums分配到两个数组里,具体如下: 第1次操作将nums[1]追加到arr1,第2次操作将nums[2]追加到arr2 后续第i次操作: 如果f(arr1,nums[i]) > f(arr2,num 阅读全文

posted @ 2024-03-20 21:37 chenfy27 阅读(27) 评论(0) 推荐(0)

leetcode552 学生出勤记录2

摘要: 有n天,每天出勤可以是缺勤,迟到或正常,要求总缺勤天数少于两天,且不存在连续3天及以上的迟到,问有多少种可行的情况?结果对1e9+7取模。 1<=n<=1e5 记数类dp问题,用刷表法好写点,即假设当前为第i天,已缺勤j天,已连续迟到k天,方案数为dp[i][j][k],再分别枚举接下的一天选择什么 阅读全文

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

2024年3月19日 #

51nod1174 区间中最大的数RMQ

摘要: 给出一个有n个数的序列,下标0 ~ n-1,有Q次查询,每次询问区间[l,r]的最大值。 如果有修改,可以考虑线段树,这里只有静态查询,可以用ST表,预处理时间O(nlogn),单次查询时间O(1)。 #include <bits/stdc++.h> using namespace std; #de 阅读全文

posted @ 2024-03-19 22:28 chenfy27 阅读(15) 评论(0) 推荐(0)

51nod2599 最近公共祖先LCA

摘要: 给定一颗n个节点的树,根节点编号为1,有Q组询问,每次给定一对节点编号(x,y),求(x,y)的最近公共祖先。 求LCA有多种方法,这里给的是倍增法,预处理时间O(nlogn),单次查询时间O(logn),支持在线。 #include <bits/stdc++.h> using namespace 阅读全文

posted @ 2024-03-19 22:21 chenfy27 阅读(18) 评论(0) 推荐(0)

2024年3月18日 #

abc250G 股票交易

摘要: 给出未来n天的股票交易价格p[i],每天可以选择买入1个单位、卖出1个单位、或者不交易。最初手里没有股票和无限资金,问n天结束后的最大获利。注意,n天结束后手里的股票价值为0。 1<=n<=2e5; 1<=p[i]<=1e9 反悔贪心,如果当天有利可图就卖出,同时买入当天股票,后面再涨就再卖出,相当 阅读全文

posted @ 2024-03-18 23:09 chenfy27 阅读(24) 评论(0) 推荐(0)

abc250E 判断前缀构成的集合是否相等

摘要: 给定数组A[n]和B[n],有Q组询问,每次给出一组(x,y),问A中前x个元素构成的集合是否与B中前y个元素构成的集合相等? 1<=n,q<=2e5; 1<=a[i],b[i]<=1e9; 1<=x[i],y[i]<=n 可以用乘法和异或来实现对集合的哈希,另外需要借助一个set来避免重复元素对哈 阅读全文

posted @ 2024-03-18 22:53 chenfy27 阅读(18) 评论(0) 推荐(0)

abc253E 相邻元素之差不低于K的序列数

摘要: 给定n,m,k,找一个序列A[n],使用满足1<=A[i]<=m,并且任意相邻两元素的差的绝对值大于等于k,求满足条件的序列个数,结果对998244353取模。 2<=n<=1000; 1<=m<=5000; 0<=k<=m-1 设dp[i][j]表示前i个数以j结尾的方案数,在计算dp[i+1][ 阅读全文

posted @ 2024-03-18 20:42 chenfy27 阅读(94) 评论(0) 推荐(0)

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页