注:T1全场46个人里42个AC了。
%%%zkt也AK了呢越来越强啊
我是真的越来越弱了吗?
我到底在干什么。。。
在难度递增的题里分数递增。。。
考试过程大体还好,但是如此快速地WA掉T1也真是蠢得不行了。
T2没想到bitset,对1500这种数据范围还是不敏感。
T3想出来还是挺快的,注意观察数据范围就万事大吉。(二进制相关的题我的得分平时都不太低,是撞大运了?)
然后给T2和T3都上了个对拍,T3出锅了剩30分幸亏改过来了。
然而感觉T1实在太傻逼了暴力和正解是一个复杂度的就没打,手模几个样例就结束了。
题目的样例和手模的样例都在字串和子序列下答案相同。。。
但是这次不是看错题了,我也知道是子串,但是打到一半没过脑子就飘移到子序列上了。(因为原来做过一个那个题)
我,傻子,太弱了。
不要轻视最简单的题,你A不掉的!该打对拍还是要对拍。
bitset是出题人很喜欢的一个考点,1500的数据范围可能指向n3/32
T1:String Master
简单dp或硬匹配。
自行找不同?EXP++
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 char a[305],b[305];int n,k,dp[305][305][305]; 5 int main(){ 6 scanf("%d%d%s%s",&n,&k,a+1,b+1); 7 for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)for(int l=0;l<=k;++l){ 8 if(a[i]==b[j])dp[i][j][l]=max(dp[i][j][l],dp[i-1][j-1][l]+1); 9 if(l)dp[i][j][l]=max(dp[i][j][l],dp[i-1][j-1][l-1]+1); 10 dp[i][j][l]=max(dp[i][j][l],max(dp[i-1][j][l],dp[i][j-1][l])); 11 }printf("%d\n",dp[n][n][k]); 12 }