2021杭电多校第四场题解
作者:互联网
C
通过反复尝试容易发现规律是n<=k+1时是Yes,n>=k+2时是No
F
暴力枚举线段树的三分点,然后记忆化搜索DP即可
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<bits/stdc++.h> using namespace std; const int N=2e5+7; int n,f[N]; void dp(int l,int r) { if(f[r-l+1])return; int b=l+(r-l+1)/3-1,c=b+r>>1; dp(l,b),dp(b+1,c),dp(c+1,r); f[r-l+1]=1+f[b-l+1]+f[c-b]+f[r-c]; } int main() { int T;scanf("%d",&T); f[1]=1,f[2]=3; while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%*d"); dp(1,n); printf("%d\n",f[n]); } }View Code
持续更新中……
标签:杭电多校,第四场,int,题解,scanf,dp 来源: https://www.cnblogs.com/hfctf0210/p/15110397.html