|
|
|
咋做呢?大牛在哪
|
|
#include<cstdio>
#include<cstring> #include<cstdlib> #include<iostream> #include<cmath> #include<algorithm> #include<string> #include<set> #include<map> #include<vector> #include<queue> #define maxn 45 using namespace std; int i,j,k,m,n,ans=0,jie[maxn][maxn]; char c; string a[maxn]; bool vis[maxn]; int lian(string a,string b){ int x=min(a.size(),b.size()),len=0; if(a!=b&&a.substr(a.size()-x,x)==b.substr(0,x))return 0; for(int i=1;i<x;i++){ string s1=a.substr(a.size()-i,i),s2=b.substr(0,i); if(s1==s2){len=i;break;} } return len; } int dfs(int x){ int ans=a[x].size(); for(int i=0;i<2*n;i++){ if(!vis[i]&&jie[x][i]){ vis[i]=1; ans=max(ans,(int)a[x].size()+dfs(i)-jie[x][i]); vis[i]=0; } } return ans; } int main(){ // freopen("0.txt","r",stdin); freopen("dcjl.in","r",stdin); freopen("dcjl.out","w",stdout); cin>>n; for(i=0;i<2*n;i+=2){cin>>a[i];a[i+1]=a[i];} for(i=0;i<2*n;i++) for(j=0;j<2*n;j++)jie[i][j]=lian(a[i],a[j]); cin>>c; for(i=0;i<2*n;i+=2){ if(a[i][0]==c){ vis[i]=1; ans=max(dfs(i),ans); vis[i]=0; } } cout<<ans; return 0; } |
|
黑的一匹
题目 2000 [ZLXOI 2015][异次元圣战I]虐狗大赛
2015-10-29 10:02:03
|
|
【弱】醉了,,考试时不会计算数组范围,手一哆嗦多开俩零。。。
|
|
O(nlogn)
|
|
![]() |
|
![]()
页面 50 NOIP2015复赛讨论组
2015-10-28 23:02:22
|
|
最长不下降序列+贪心
|
|
考场上N和M打反了。。
题目 2068 Yuyuko
2015-10-28 22:18:19
|
|
|
|
二分答案+暴力扫描AC一发。还是规规矩矩学正解吧= =
|
|
听说贪心思路之后吓尿了……
|
|
这真的不是japan的题么。
|
|
美国血统
题目 1424 [NOIP 2001]求先序遍历
2015-10-28 14:28:44
|
|
裸拍(百度得知)
|
|
|
|
SLF真是快如闪电
题目 1787 月考统计
2015-10-28 12:10:14
|
|
我看没几个人打dq优化的
|
|
|