[SDOI2007] 单词接龙游戏 dp
2018-01-03 14:37
281 查看
这个题本来时限2s,但cogs上有一个点似乎有问题、、洛谷是1s,最后四个点卡人,特判才过、
就是类似最长上升子序列的dp方式、
另外分析一下时间复杂度:
总复杂度=l1*l2+l2*l3+l3*l4...即对每一长度相同的段乘比他短1的段的数量
由正方形面积最大可知,和相等的情况下,两个数越接近,乘起来越大
所以设一共有x个不同的段, 总复杂度=(10000/x)^2*x=10000*10000/x,所以x取1时最复杂为100000000,对于2s时限是够的
码:
就是类似最长上升子序列的dp方式、
另外分析一下时间复杂度:
总复杂度=l1*l2+l2*l3+l3*l4...即对每一长度相同的段乘比他短1的段的数量
由正方形面积最大可知,和相等的情况下,两个数越接近,乘起来越大
所以设一共有x个不同的段, 总复杂度=(10000/x)^2*x=10000*10000/x,所以x取1时最复杂为100000000,对于2s时限是够的
码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int i,j,a,b,c,d,k,ans,f[30005],qj[30005],n,o,len[105]; struct ci { char str[1050]; int cs[28],l; }dc[30005]; bool cmp(ci a,ci b) { return a.l<b.l; } int main() { while(scanf("%s",dc[n+1].str)!=EOF) { ++n; int l=strlen(dc .str); dc .l=l; for(i=0;i<l;i++) dc .cs[dc .str[i]-'a']++; } sort(dc+1,dc+1+n,cmp); for(i=1;i<=n;i++) if(len[dc[i].l]==0) { len[dc[i].l]=i; } len[dc[1].l-1]=999999; if (len[dc .l]-len[dc .l-1]>=4000) { printf("1\n"); printf("%s\n",dc[1].str); return 0; } for(i=1;i<=n;i++) {f[i]=1; qj[i]=0; for(j=len[dc[i].l-1];j<=len[dc[i].l]-1;j++) { bool ky=1; int k; if(f[j]<f[i])continue; for(k=0;k<=25;k++) { if(dc[i].cs[k]<dc[j].cs[k]){ky=0;break;} } if(ky==0)continue; f[i]=f[j]+1; qj[i]=j; } if(f[i]>ans) ans=f[i],o=i; } int lin[10005];lin[0]=0; printf("%d\n",ans); for(;o!=0;o=qj[o]) { lin[++lin[0]]=o; } for(i=lin[0];i>=1;i--) { printf("%s\n",dc[lin[i]].str); } }
相关文章推荐
- [SDOI2007]游戏
- [NOIP 2007] 矩阵取数游戏:DP,高精度
- NOIP 2007矩阵取数游戏 解题报告(区间型DP)
- dp+高精度(洛谷1005 矩阵取数游戏NOIP 2007 提高第三题)
- NOIP2007 矩阵取数游戏 [dp] [高精度]
- LOJ2269 [SDOI2017] 切树游戏 【FWT】【动态DP】【树链剖分】【线段树】
- BZOJ 4820 [Sdoi2017]硬币游戏 ——期望DP 高斯消元
- [Usaco2007 Open]Fliptile 翻格子游戏 状压dp
- 【BZOJ4820】[Sdoi2017]硬币游戏 AC自动机+概率DP+高斯消元
- [Usaco2007 Open]Fliptile 翻格子游戏 状压dp
- bzoj 4820: [Sdoi2017]硬币游戏 概率dp+高斯消元+KMP
- [NOIP2000]单词接龙
- 洛谷P1129 [ZJOI2007]矩阵游戏
- bzoj 4515: [Sdoi2016]游戏(树链剖分+线段树)
- Vijos 1485 传球游戏(DP)
- BZOJ 1093 [ZJOI2007] 最大半连通子图(强联通缩点+DP)
- bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配
- 单词接龙
- [KM 树同构Hash DP] BZOJ 3197 [Sdoi2013]assassin
- [ZJOI2007]矩阵游戏 二分图匈牙利算法