Codeforces Round #570 (Div. 3) E. Subsequences (easy version) (搜索,STL)
2024-09-02 17:35:23
题意:有一长度为\(n\)的字符串,要求得到\(k\)不同的它的子序列(可以是空串),每个子序列有\(|n|-|t|\)的贡献,求合法情况下的最小贡献.
题解:直接撸个爆搜找出所有子序列然后放到set里面搞一下就好了.
代码:
int n,k;
string str;
set<string> s;
queue<string> q; void bfs(){
s.insert(str);
q.push(str); while(!q.empty()){
string cur=q.front();
q.pop(); if(s.size()>=k) break; rep(i,0,(int)cur.size()-1){
string tmp=cur;
tmp.erase(i,1);
if(s.count(tmp)==0){
s.insert(tmp);
q.push(tmp);
}
if(s.size()>=k) break;
}
}
} int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>n>>k;
cin>>str; bfs(); if(s.size()<k) {cout<<-1<<'\n';return 0;} int ans=0;
for(auto w : s){
ans+=n-(int)w.size();
} cout<<ans<<'\n'; return 0;
}
最新文章
- 如何在webapp中做出原生的ios下拉菜单效果
- iOS内支付
- c#连接SFTP上传文件
- .NET Framework 高级开发
- Android笔记——Windows环境下Android Studio v1.0安装教程
- Java Executor并发框架(一)整体介绍
- git学习笔记07-冲突了怎么办-那就解决冲突呗
- ionic 实现双击返回键退出应用功能
- [Ramda] Filter, Reject and Partition
- except ShortInputException,x中逗号
- oracle闪回表详解
- VNC服务端自动化配置脚本
- Win7x64安装Oracle11201x64 解决PLSQL Developer无法找到oci问题
- C++ Builder多线程编程技术经验谈(转)
- [转]JAVA的动态代理机制及Spring的实现方式
- Mongodb for .Net Core 封装类库
- Lab 7-3
- Android 常用RGB值以及中英文名称
- 解密gzip压缩的网页数据流(转)
- MySQL IFNULL()函数用法MySQL