ABC 344

ABC 344

ABC用python写代码会比较快
A 题可以积累简洁的写法:

S = input()
a, b, c = S.split('|')
print(a+c)
#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;
	cin >> s;
	int x = s.find("|");  // The first occurrence of `|` when scanning from the head
	int y = s.rfind("|");  // The first occurrence of `|` when scanning from the tail
	cout << s.substr(0,x) + s.substr(y+1) << endl;
}

一个是 find 一个是 substr

D 题是DP

状态:dp[i][j] 表示使用前 i 个背包,组成 T 的前 j 个字符所需要最少的组件数。

状态转移: d p [ i ] [ j ] = min ⁡ ( d p [ i − 1 ] [ j ] , d p [ i − 1 ] [ j − v k ] + 1 ) dp[i][j] = \min(dp[i-1][j], dp[i-1][j-v_k]+1) dp[i][j]=min(dp[i1][j],dp[i1][jvk]+1),其中 i , j , v , k i,j,v,k i,j,v,k满足

  1. T [ : j ] = T [ : j − v ] + S i , k T[:j]= T[:j-v]+S_{i,k} T[:j]=T[:jv]+Si,k
  2. v = S i , k . size() v = S_{i, k}.\texttt{size()} v=Si,k.size()
  3. k ∈ [ 1 , A i ] k\in [1, A_i] k[1,Ai]

image-20240310162714793

E 题是基于哈希表的双向链表

出了个阴间的bug

image-20240310162806367

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值