当前位置: 首页 > news >正文

网站在线备案北京律师网站建设推荐

网站在线备案,北京律师网站建设推荐,邯郸网站制作设计,seo优化的技巧链接#xff1a;Iroha Loves Strings - AtCoder arc058_d - Virtual Judge 利用bitset这一数据结构#xff0c;定义bitset类型的变量dp[i]表示第i到n个字符串能拼成的字符串长度都有哪些#xff0c;比如00100101#xff0c;表示能拼成的长度有0,2,5#xff0c;#xff0…链接Iroha Loves Strings - AtCoder arc058_d - Virtual Judge 利用bitset这一数据结构定义bitset类型的变量dp[i]表示第i到n个字符串能拼成的字符串长度都有哪些比如00100101表示能拼成的长度有0,2,5注意bitset中的元素从右往左看下标从0开始利用递推关系更新dp[i]如下 dp[i] dp[i1] | (dp[i1] s[i]的长度) 若dp[i][k] 1说明第i到第n个字符串可以拼成长度为k的字符串 之后模拟取数i从1到k进行遍历每次取当前能取的最小的字符具体实现方式如下以下描述建议结合代码看 定义候选对数组 pairint,int sel[i][j]i为0或1用作开关变量j是候选对象的编号从1到cnt或ncnt每个sel[i][j]中存的是 候选字符所在的字符串的序号候选字符在该字符串中的下标 第一个字符的候选字符串i要满足dp[i1][k-s[i]的长度] 1也就是选了第i个字符串后之后的字符串必须保证能拼成(k-s[i]的长度)的长度的字符串将pairi,0加入sel i从1到k遍历每次在所有候选字符中选择字典序最小的那个字符作为答案接着分情况讨论 1.如果字符串还没用完就继续将该字符串的下一个元素加入候选队列如果有这样的字符串 ab和ac那么b和c都应该加入候选队列 2.如果有一个字符串用完了可能出现这样的情况abc abc这时应该先选前面的“abc”因为选完编号为i的字符串后新入选的字符串的下标从 i1 开始如果选了第二个或后面的就会有字符串没法被用到从而导致丢失解或错误解新入选的字符串编号为 j 要满足dp[ j1 ][ k-i-新字符串的长度 ]等于1这样选其能确保最终构成的字符串有可能长度为k将pair新字符串的编号0加入sel中 复杂度估计nk 注意 bitset和pair定义的先后会影响程序运行对错正确的顺序是先定义bitset后定义pair原因涉及到C语言本身 #includebits/stdc.h using namespace std;const int maxn2005,maxk1e45; char s[maxn][maxk]; int len[maxn]; int n,k; bitsetmaxk dp[maxn]; pairint,int sel[2][maxn];//pair和bitset的先后问题int main() {ios::sync_with_stdio(0);cin.tie(0);//freopen(D:\\in.txt,r,stdin);cinnk;for(int i1;in;i){cins[i];len[i]strlen(s[i]);}dp[n1][0]1;for(int in;i1;i--){dp[i](dp[i1] | (dp[i1]len[i]));}int cnt0;//挑出第一个字符的可选对象for(int i1;in;i){if(dp[i1][k-len[i]]){//printf(%d可选\n,i);sel[0][cnt]{i,0};}}int t1;for(int i1;ik;i){int ncnt0;t^1;char curz;for(int j1;jcnt;j){curmin(cur,s[sel[t][j].first][sel[t][j].second]);}coutcur;//更新下一组候选对象int minidn1;for(int j1;jcnt;j){int idsel[t][j].first,possel[t][j].second;if(s[id][pos]!cur) continue;if(poslen[id]-1){sel[t^1][ncnt]{id,pos1};}else{minidmin(minid,id); //选序号最小的这样后面的字符串还能用得上不然会白白浪费字符串}}for(int jminid1;jn;j){if(k-i-len[j]0 dp[j1][k-i-len[j]]){sel[t^1][ncnt]{j,0};}}cntncnt;}return 0; }
http://www.hkea.cn/news/14526884/

相关文章:

  • 网络网站建设推广微网站和微信
  • 校园网站建设宣传网站建设工程师的职位要求
  • 横沥建设网站广告设计公司属于什么行业
  • 网站建设说课ppt网站建设实训的目的
  • 做国外有那些网站网站建设 中企动力福州阀门
  • 怎么做视频平台网站删除自豪地采用wordpress
  • 西安网站建设培训学校微信网站有什么作用
  • 丹东谁做微网站二手网站怎么做
  • 如何把jQuery特效做网站背景一站式服务大厅
  • 牛天下网站建设北京 网站建设 招标信息
  • 搜狗网站优化软件手机网站内容管理
  • 建立中文网站的英文wordpress婚礼主题公园
  • 网站建设需要了解的智慧门店管理服务平台
  • 渭南网站建设公司定制网站建设公司手机网站大全1
  • 同仁微网站建设工作室工业设计在线官网
  • 建设部机关服务中心网站哪个网站可以做视频
  • 丰台深圳网站建设公司如何辨别官方网站
  • 网站常规seo优化步骤建设网站cms
  • 如何做电影网站赚钱wordpress搜索结果页样式
  • 大学专业网站wordpress 手机维修
  • 运营什么网站好拍摄网
  • 宝塔面板怎么建设网站网站建站费用多少钱
  • 建设网站需要的编程800元五合一建站
  • 泰州市建设工程质量监督站网站wordpress修改域名文件
  • 北京南站到北京西站地铁怎么走wordpress cu主题
  • 手机网站建站平台k8s wordpress
  • 做网站用什么浏览器最好seo排名教程技术
  • 一流的免费网站建设wordpress使用cdn图片不显示
  • 佛山o2o网站建设天元建设集团有限公司联系电话
  • 国外平面设计师网站林业厅网站建设方案