- 2024-03-27AT_abc344_e的题解
(一)这次ABC有点水。每个数记录前面那个数,和后面那个数。对于每个数,开个数组记录值,用map记录一个值的位置(二)AC代码。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intpre[400010],cnt,las[400010],a[400010],n,q;map<int,int>mp;signedmain(
- 2024-03-27AT_abc344_c的题解
(一)数据范围较小,三重循环枚举选的数,用map存储可能的和即可。(二)AC代码。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,m,l,q,a[110],b[110],c[110];map<int,bool>mp;signedmain(){ scanf("%lld",&n); for(inti=1;i<=n;i++)scan
- 2024-03-24AT_abc344_D-String Bags 题解
明显是DP。然后就开始分析:状态:\(dp_{ij}=\)有\(i\)个袋子且匹配\(T\)的前缀的长度为\(j\)时所需的最少钱数。匹配\(T\)的前缀的长度为\(j\)就是前\(j\)个字符与\(T\)的前\(j\)个字符相同。相对简单。然后看转移。为了方便,咱不妨令\(|S|\)为字符串\(S
- 2024-03-11ABC344 D-F
ABC344D-F**D-StringBags**标签动态规划DP思路这一题可以想到使用\(DP\)。那么\(f[i][j]\)就表示在前\(i\)个包里选择长度为\(j\)的字符串最小钱数。这里的字符串时字符串\(T\)的子串那么状态转移方程就是f[i+1][j+s.size()]=min(f[i+1][j+s.size()],f[i]
- 2024-03-09abc344_D - String Bags 题解
一个月没有碰oi,感觉水平已经退化到负的了。来复健一下。D-StringBagslink题意:给你\(n\)组字符串组,按\(1\)~\(n\)的顺序,对于每组字符串组,可从中至多选一个字符串。求能否用所选串按顺序拼接成指定串,以及选取字符串的最小个数。然后读完题发现是个\(01\)背包;对于第
- 2024-03-09AT_abc344_e 题解
本文同步发表于洛谷。赌狗天天输的一集。赛时各种【数据删除】原因导致没做出来。大意给你一个长度为\(N\)的序列\(A=(A_1,\ldots,A_N)\)。保证\(A\)中的元素是不同的。你要处理\(Q\)个操作。每个操作是以下两种类型之一:1xy:在\(A\)中元素\(x\)后面紧接着插入
- 2024-03-09AT_abc344_d 题解
赌狗天天输的一集。大意你最开始有一个空字符串\(S\)。你还有编号为\(1,2,\dots,N\)的袋子,每个袋子都包含一些字符串。袋子\(i\)包含\(A_i\)个字符串\(S_{i,1},S_{i,2},\dots,S_{i,A_i}\)。对\(i=1,2,\dots,N\)重复以下步骤仅一次(这里原题没有讲清楚):