题解:

首先subtask1直接状压暴力就好

subtask2我的处理和题解不太一样

仍然正向考虑

设i的时候有最高位为j,那么这个时候数一定越大越好(这个比较好yy)

然后$f[i][j]$搞个高精度dp就可以了

复杂度$(n^3/64)$

我懒得手写了。。就写了$n^3$的

还有bitset本地开O2 0.5s 不开O2 32s 真可怕

subtask4

显然我们会先用1,然后到一定时候为了保证位数有0就得用

#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define IL inline
#define rep(i,h,t) for (int i=h;i<=t;i++)
#define dep(i,t,h) for (int i=t;i>=h;i--)
bitset<> f[][];
const int N=2e6;
char c[N];
#define te bitset<510>
IL bool pd1(te B,int k)
{
rep(i,,k) if (B[i]!=) return();
return();
}
IL te plu(te B1)
{
te B=B1;
int i;
for (i=;i<=;i++) if (B[i]==) break;
B[i]=;
i--;
for (;i>=;i--) B[i]=;
return B;
}
bool pd(te x,te y)
{
for (int i=;i>=;i--)
{
if (x[i]>y[i]) return ;
if (x[i]<y[i]) return ;
}
return ;
}
IL void maxa(te &a,te b)
{
if (pd(a,b)) a=b;
}
te ans;
int n,m;
namespace subtask4{
int f[N];
void solve()
{
dep(i,n,) if (c[i]=='*') f[i]=f[i+]+;
else f[i]=f[i+];
bool tt=;
int cnt=,cnt3=;
rep(i,,n)
{
if (c[i]=='+')
{
cout<<; tt=; cnt++; cnt3=;
} else
{
cnt3++;
if (cnt3>&&tt&&f[i]<m-cnt) { cout<<; cnt++;}
}
if (cnt==m) {break;}
}
if (tt&&cnt!=m&&cnt3>) cout<<;
if (!tt) cout<<;
}
};
int main()
{
freopen("1.in","r",stdin);
freopen("2.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m; rep(i,,n) cin>>c[i];
if (n<=&&m<=)
{
rep(i,,n)
rep(j,,m)
{
if (c[i]=='+')
{
if (j&&pd1(f[i-][j-],j-)) f[i][j][j]=;
if (!pd1(f[i-][j],j))
maxa(f[i][j],plu(f[i-][j]));
} else
{
if (j) f[i][j]=f[i-][j-]<<;
}
maxa(f[i][j],f[i-][j]);
}
int pos=;
dep(i,,) maxa(ans,f[n][i]);
dep(i,,) if (ans[i]) { pos=i; break;}
dep(i,pos,) cout<<ans[i];
} else
{
subtask4::solve();
}
return ;
}

然后正解其实就是先做一个转化

把*后面相邻的+变成乘前面的+

于是这样就变成subtask4

B. Menci 的序列的更多相关文章

  1. Menci的序列

    题目大意 一个长度为n的字符串s,只包含+和×. 选出一个子序列,然后你有一个ret,初始为0,按顺序扫你选出的这个子序列. 如果碰到的是+,ret+1,否则ret*2. 最大化ret%2^k. 首先 ...

  2. 【夯实PHP基础】UML序列图总结

    原文地址 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色 ...

  3. Windows10-UWP中设备序列显示不同XAML的三种方式[3]

    阅读目录: 概述 DeviceFamily-Type文件夹 DeviceFamily-Type扩展 InitializeComponent重载 结论 概述 Windows10-UWP(Universa ...

  4. 软件工程里的UML序列图的概念和总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 软件工程的一般开发过程:愿景分析.业务建模,需求分析,健壮性设计,关键设计,最终设计,实现…… 时序图也叫序列图(交互图),属于软件 ...

  5. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  6. BZOJ 1251: 序列终结者 [splay]

    1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3778  Solved: 1583[Submit][Status][Discu ...

  7. 最长不下降序列nlogn算法

    显然n方算法在比赛中是没有什么用的(不会这么容易就过的),所以nlogn的算法尤为重要. 分析: 开2个数组,一个a记原数,f[k]表示长度为f的不下降子序列末尾元素的最小值,tot表示当前已知的最长 ...

  8. [LeetCode] Sequence Reconstruction 序列重建

    Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. Th ...

  9. [LeetCode] Binary Tree Longest Consecutive Sequence 二叉树最长连续序列

    Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...

随机推荐

  1. js-sha256源码

    /** * [js-sha256]{@link https://github.com/emn178/js-sha256} * * @version 0.9.0 * @author Chen, Yi-C ...

  2. setTimeout与setInterval

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法:setTimeout(code/function, milliseconds, param1, param2, ...) ...

  3. [转载]再谈PostgreSQL的膨胀和vacuum机制及最佳实践

    本文转载自 www.postgres.cn 下的文章: 再谈PostgreSQL的膨胀和vacuum机制及最佳实践http://www.postgres.cn/news/viewone/1/390 还 ...

  4. 使用fork的str_cli函数

    void str_cli(FILE *fp, int sockfd) { pid_t pid; char sendline[MAXLINE], recvline[MAXLINE]; ) { /* ch ...

  5. mysql数据库 删除某几个字段相同的重复记录并根据另一字段留下一条记录

    1.例如Mysql数据库中表a中的记录,id=2,id=6,id=7的记录是重复的(iId,cId等多个字段相同),现在想留下id最小(id=2)或最大(id=7)的一条记录

  6. Contest2163 - 2019-3-28 高一noip基础知识点 测试6 题解版

    传送门 @dsfz201814 改题 T1:全锕,过 T2:全锕,过 T3:@dsfz201814 先用竖着放置的木块将它变成高度差最大为1的数列 然后对于任意相邻相等的两块,可以将它看成任意 例如, ...

  7. linux删除软链接文件【原创】

    删除软链接文件时,不要加“/”,去注意 正确方法: rm -rf ./softlinkfile 错误方法: rm -rf ./softlinkfile/ 上面错误的操作,这样会把软链接的源文件一同删除 ...

  8. 【转】Oracle之索引

    简介 1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的目录.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用目录可以不用翻阅整本书即可找到想要的信 ...

  9. Ubuntu的sources.list

    参考文章: https://blog.csdn.net/u012843189/article/details/80964287 位于/etc/apt/sources.list 其中 deb http: ...

  10. linux编译相关命令

    一.编译可执行文件 g++ –c Hello.cpp  编译文件,生成目标文件Hello.o g++ Hello.o –o a.out  链接并重命名为可执行文件a.out g++ Hello.cc  ...