ARC58F 文字列大好きいろはちゃん / Iroha Loves Strings-暴力+剪枝

本文介绍了一种通过暴力算法解决特定字符串构建问题的方法。该问题要求从一组字符串中选择并连接某些字符串,使得最终得到的字符串长度固定,并且字典序最小。文章详细解释了算法思路,并提供了C++实现代码。

传送门

题意:

给出n个字符串,要求按给出的顺序选择一些字符串,使得这些字符串按顺序拼起来后长度为k且字典序最小

Solution:

正解目前还不会…先写一波学来的暴力算法:

can[i][j] c a n [ i ] [ j ] 表示后i个是否可以组成长度为j的字符串

先加入初始能加入的串,存入一个数组中

然后顺序枚举答案串的每一位,对于每一位贪心找出最小字典序,对于最优状态向后转移,转移分为两种:

1.当前这个串未到末尾,这种情况直接向后转移即可

2.当前这个串到末尾,这种情况只需记录最早的到末尾的串,枚举他后面的串是否符合条件即可

注意预处理需要使用bitset优化

复杂度O(能过)

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<bitset>
#define mp(a,b) make_pair(a,b)
using namespace std;
bitset<10010> can[2010];
pair<int,int> vis[2][10010];
char s[2010][10010],ans[1000010];
int len[2010],n,k,cnt,ncnt;
int main()
{
    scanf("%d%d",&n,&k);
    for (int i=1;i<=n;i++) scanf("%s",s[i]),len[i]=strlen(s[i]);
    can[n+1][0]=1;
    for (int i=n;i>=1;i--)
        can[i]=can[i+1]|(can[i+1]<<len[i]);
    for (int i=1;i<=n;i++)
        if (can[i+1][k-len[i]]) vis[0][++cnt]=mp(i,0);
    int ii=0;
    for (int i=0;i<k;i++)
    {
        char minc='z';
        for (int j=1;j<=cnt;j++) minc=min(minc,s[vis[ii][j].first][vis[ii][j].second]);
        ans[i]=minc;
        int minid=n+1;
        ncnt=0;
        for (int j=1;j<=cnt;j++)
        {
            int nid=vis[ii][j].first,nlen=vis[ii][j].second;
            if (s[nid][nlen]!=minc) continue;
            if (nlen+1==len[nid]) minid=min(minid,nid);
            else vis[ii^1][++ncnt]=mp(nid,nlen+1);
        }
        for (int j=minid+1;j<=n;j++)
            if (k-len[j]-i-1>=0&&can[j+1][k-len[j]-i-1]) vis[ii^1][++ncnt]=mp(j,0);
        ii^=1;
        cnt=ncnt;
    }
    printf("%s",ans);
}
构建进程终止异常: C:\Users\xxzxhn\.jdks\openjdk-21.0.2\bin\java.exe -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=D:\IDEA\IntelliJ IDEA 2024.1.4/lib/jna/amd64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -Dpreload.project.path=C:/Users/xxzxhn/IdeaProjects/InterfaceDemo -Dpreload.config.path=C:/Users/xxzxhn/AppData/Roaming/JetBrains/IntelliJIdea2024.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=1609067845224991422 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2024.1 -Djps.language.bundle=C:/Users/xxzxhn/AppData/Roaming/JetBrains/IntelliJIdea2024.1/plugins/zh.241.271/lib/zh.241.271.jar "-Didea.home.path=D:/IDEA/IntelliJ IDEA 2024.1.4" -Didea.config.path=C:/Users/xxzxhn/AppData/Roaming/JetBrains/IntelliJIdea2024.1 -Didea.plugins.path=C:/Users/xxzxhn/AppData/Roaming/JetBrains/IntelliJIdea2024.1/plugins -Djps.log.dir=C:/Users/xxzxhn/AppData/Local/JetBrains/IntelliJIdea2024.1/log/build-log "-Djps.fallback.jdk.home=D:/IDEA/IntelliJ IDEA 2024.1.4/jbr" -Djps.fallback.jdk.version=17.0.11 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/xxzxhn/AppData/Local/JetBrains/IntelliJIdea2024.1/compile-server/interfacedemo_a13bff99/_temp_ -Djps.backward.ref.index.builder=true -Djps.backward.ref.index.builder.fs.case.sensitive=false "-Djps.kotlin.home=D:\IDEA\IntelliJ IDEA 2024.1.4\plugins\Kotlin\kotlinc" -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=true -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path=\"C:\Users\xxzxhn\AppData\Local\Temp\kotlin-idea-11542373924410988576-is-running\" -Dide.propagate.context=false -classpath "D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/jps-launcher.jar" org.jetbrains.jps.cmdline.Launcher "D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/jps-builders.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/jps-builders-6.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/jps-javac-extension.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/util-8.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/util_rt.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/platform-loader.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/annotations.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/trove.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/jetbrains.kotlinx.metadata.jvm.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/protobuf.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/jps-model.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/javac2.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/forms_rt.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/util.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/aether-dependency-resolver.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/maven-resolver-connector-basic.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/maven-resolver-transport-file.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/java/lib/maven-resolver-transport-http.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/idea_rt.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/JavaEE/lib/jasper-v2-rt.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/lib/util-8.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/eclipse/lib/eclipse-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/eclipse/lib/eclipse-common.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/JavaEE/lib/javaee-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/uiDesigner/lib/jps/java-guiForms-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/platform-langInjection/lib/java-langInjection-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/javaFX/lib/javaFX-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/javaFX/lib/javaFX-common.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/Groovy/lib/groovy-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/Groovy/lib/groovy-constants-rt.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/maven/lib/maven-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/gradle-java/lib/gradle-jps.jar;D:/IDEA/IntelliJ IDEA 2024.1.4/plugins/JPA/lib/jps/javaee-jpa-jps.jar" org.jetbrains.jps.cmdline.BuildMain 127.0.0.1 55706 15d6a506-8ab5-4ff3-a6a9-0df58f4651c6 C:/Users/xxzxhn/AppData/Local/JetBrains/IntelliJIdea2024.1/compile-server Error occurred during initialization of VM Failed setting boot class path.
最新发布
08-28
报错如下: I0812 17:13:07.241185 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="nft-test/nft-exchange-nft-adapter-568dbfbb5d" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241190 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="thanos-test/thanos-biz-user-76c7d7ff67" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241196 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="xt-test/service-message-job-6476b6c868" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241203 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="ryzen-test/ryzen-risk-impl-76bf699858" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241236 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="hydrax-test/hydrax-bot-api-74bc75679c" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241242 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="risk-test/risk-rule-impl-6999d969bf" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241248 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="data-center-test/data-center-bd-crm-manage-58f64548b7" livePods=1 requiredPods=2 globalMinReplicas=2 I0812 17:13:07.241254 1 pods_restriction_factory.go:212] "Too few replicas" kind="ReplicaSet" object="ryzen-test/ryzen-fund-cache-grouping-5cf68f667c" livePods=1 requiredPods=2 globalMinReplicas=2
08-14
ERROR: Command errored out with exit status 1: command: /usr/local/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3ulu7nqi/jieba_1821a8b55af44ad7bbe35da8acca6efa/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3ulu7nqi/jieba_1821a8b55af44ad7bbe35da8acca6efa/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-6a4gfrh6 cwd: /tmp/pip-install-3ulu7nqi/jieba_1821a8b55af44ad7bbe35da8acca6efa/ Complete output (11 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 23, in <module> from setuptools.dist import Distribution File "/usr/local/lib/python3.9/site-packages/setuptools/dist.py", line 34, in <module> from setuptools import windows_support File "/usr/local/lib/python3.9/site-packages/setuptools/windows_support.py", line 2, in <module> import ctypes File "/usr/local/lib/python3.9/ctypes/__init__.py", line 8, in <module> from _ctypes import Union, Structure, Array ModuleNotFoundError: No module named '_ctypes' ---------------------------------------- WARNING: Discarding https://mirrors.bfsu.edu.cn/pypi/web/packages/6d/8d/ab58f5f21128cfb92bd9a64449d2ad8ae5ebc7f4d46c695283b6e7a18dbd/jieba-0.20.zip#sha256=fb549c339ab9e4e094a471de4bcd035f9b5029450df14d1d28e921ea1c60eda5 (from https://mirrors.bfsu.edu.cn/pypi/web/simple/jieba/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Collecting funasr
07-16
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值