ArabellaCPC 2019 J. Thanos Power 动规

题目大意

  题目目标是得到一个数N,为此可以进行两种操作,一种是加上10x (x>=0),另一种是减去10x (x>=0),求操作次数的最小值。



解法

  首先数N非常大,因此需要用字符串来存储。(这是废话,哈哈哈)先单独来看对每一位的操作,对当前位上的数x,为了使其变为0,我们可以

1.不断执行减操作x次,
2、执行加操作10-x次。

先说一说俺之前的愚蠢做法

刚开始,本憨憨打算用贪心来做,说说我原来神奇的操作,就是从低位向高位处理,如果当前位 i 的数>5,我就对它用操作2,然后对比他高一位i-1位上的数加一;反之就用操作1,结果当然是WA了,后来学习了别人的做法,发现都是用DP做的,回过头来想了好久才发现这个做法错在哪里。
  用对拍和正确代码核对,发现错误的样例种N都含有5,仔细一想发现对 i 位上的5来说,用操作1还是2是不一定的,取决于比它高一位(i-1)上的数,操作1和2对当前位的操作数都是5,但如果用操作2可能会使之后 i-1 位上的数的最小操作次数减少1或者增加1,所以有时用操作1更好,有时操作2更好(详细可以参考N= 75521 ,6535 ,5553 ,自己手动模拟一遍就很好懂了),因此无法用贪心解决。

老老实实用动规8
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iomanip>
#include <string>
#include <set>
#include <vector>
#include <queue>
#include <stack>
#include <map>
using namespace std;
#define ms(a, x) memset(a, x, sizeof(a))
#define fore(i, a, n) for (long long i = a; i < n; i++)
#define ford(i, a, n) for (long long i = n - 1; i >= a; i--)
#define si(a) scanf("%d", &a)
#define sl(a) scanf("%lld", &a)
#define sii(a, b) scanf("%d%d", &a, &b)
#define siii(a, b, c) scanf("%d%d%d", &a, &b, &c)
#define sll(a, b) scanf("%lld%lld", &a, &b)
#define slll(a, b, c) scanf("%lld%lld%lld", &a, &b, &c)
#define debug(a) cout << a << endl
#define pr(a) printf("%d ",a)
#define prn(a) printf("%d\n",a)
#define endl '\n'
#define pi acos(-1.0)
#define tr t[root]
#define lson t[root << 1]
#define rson t[root << 1 | 1]
#define IO ios::sync_with_stdio(false), cin.tie(0)
#define ull unsigned long long
const double eps = 1e-8;
inline int sgn(const double &x) { return x < -eps ? -1 : x > eps; }
typedef long long ll;
const int inf=0x3f3f3f3f;
const int MAXN = 3e5+5;
//表头分割线----------------
int dp[MAXN][2];
//dp数组,第一维表示位数,第二维表示用那种操作,0表示用操作1,1表示用操作2。
//dp数组里面存储的是从最高位到当前位,且在当前位用某种操作后得到的总操作数最小值。
char N[MAXN];
int main()
{ 
	scanf("%s",N+1);
    int len=strlen(N+1);
    dp[1][0]=N[1]-'0';
    dp[1][1]=10-N[1]+'0'+1;
    for(int i=2;i<=len;++i)
    {
        int x=N[i]-'0';
        dp[i][0]=x+min(dp[i-1][0],dp[i-1][1]);
        dp[i][1]=10-x+min(dp[i-1][0]+1,dp[i-1][1]-1);
    }
    int ans=min(dp[len][0],dp[len][1]);
    prn(ans);
}
com.tongweb.deploy.interfaces.DeployException: com.tongweb.deploy.interfaces.DeployException: com.tongweb.web.thanos.startup.DeployInnerWebtierException: com.tongweb.web.thanos.startup.DeployInnerWebtierException: java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.config.ValidationFailedException: Module failed validation. AppModule(name=GiNMS_GB28181)--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.config.ValidationFailedException: Module failed validation. AppModule(name=GiNMS_GB28181)--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is com.tongweb.web.thanos.startup.DeployInnerWebtierException: java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.config.ValidationFailedException: Module failed validation. AppModule(name=GiNMS_GB28181)--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.config.ValidationFailedException: Module failed validation. AppModule(name=GiNMS_GB28181)--------this exception is deploy,exception occur is in exceptionWrapperPhase-------
最新发布
11-22
java.lang.ClassNotFoundException: com.zxzj.util.FckServelt at com.tongweb.tongejb.core.TongWebURLClassLoader.loadClass0(TongWebURLClassLoader.java:224) at com.tongweb.tongejb.core.TongWebURLClassLoader$1.loadClass(TongWebURLClassLoader.java:168) at com.tongweb.common.LoadClassCache.cacheLoadClass(LoadClassCache.java:63) at com.tongweb.tongejb.core.TongWebURLClassLoader.loadClass(TongWebURLClassLoader.java:165) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at com.tongweb.tongejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2127) at com.tongweb.tongejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1853) at com.tongweb.tongejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:233) at com.tongweb.tongejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:358) at com.tongweb.tongejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:975) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.startInternal(ThanosWebtierWebAppBuilder.java:1138) at com.tongweb.tomee.catalina.WebtierWebAppBuilder.configureStart(WebtierWebAppBuilder.java:1060) at com.tongweb.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) at com.tongweb.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) at com.tongweb.catalina.core.StandardContext.startInternal(StandardContext.java:5175) at com.tongweb.catalina.core.ThanosStandardContext.startInternal(ThanosStandardContext.java:204) at com.tongweb.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at com.tongweb.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:734) at com.tongweb.catalina.core.ContainerBase.addChild(ContainerBase.java:710) at com.tongweb.catalina.core.StandardHost.addChild(StandardHost.java:727) at com.tongweb.catalina.core.ThanosStandardHost.addChild(ThanosStandardHost.java:710) at com.tongweb.web.thanos.startup.ThanosHostConfig.deployWar(ThanosHostConfig.java:231) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.fireWebtierProcess(ThanosWebtierWebAppBuilder.java:473) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.deployApplication(ThanosWebtierWebAppBuilder.java:384) at com.tongweb.deploy.TongWebDeployer.deploy0(TongWebDeployer.java:389) at com.tongweb.deploy.TongWebDeployer$1.run(TongWebDeployer.java:328) at java.lang.Thread.run(Thread.java:750) [2025-10-14 17:09:38 826] [SEVERE] [Thread-49] [deployment] [Unable to load tag library tag class: org.josql.contrib.JoSQLJSPQueryTag] [2025-10-14 17:09:39 021] [SEVERE] [Thread-49] [deployment] [Unable to load servlet class: com.zxzj.util.FckServelt] java.lang.ClassNotFoundException: com.zxzj.util.FckServelt at com.tongweb.tongejb.core.TongWebURLClassLoader.loadClass0(TongWebURLClassLoader.java:224) at com.tongweb.tongejb.core.TongWebURLClassLoader$1.loadClass(TongWebURLClassLoader.java:168) at com.tongweb.common.LoadClassCache.cacheLoadClass(LoadClassCache.java:63) at com.tongweb.tongejb.core.TongWebURLClassLoader.loadClass(TongWebURLClassLoader.java:165) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at com.tongweb.tongejb.config.WsDeployer.processPorts(WsDeployer.java:139) at com.tongweb.tongejb.config.WsDeployer.deploy(WsDeployer.java:60) at com.tongweb.tongejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:358) at com.tongweb.tongejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:975) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.startInternal(ThanosWebtierWebAppBuilder.java:1138) at com.tongweb.tomee.catalina.WebtierWebAppBuilder.configureStart(WebtierWebAppBuilder.java:1060) at com.tongweb.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) at com.tongweb.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) at com.tongweb.catalina.core.StandardContext.startInternal(StandardContext.java:5175) at com.tongweb.catalina.core.ThanosStandardContext.startInternal(ThanosStandardContext.java:204) at com.tongweb.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at com.tongweb.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:734) at com.tongweb.catalina.core.ContainerBase.addChild(ContainerBase.java:710) at com.tongweb.catalina.core.StandardHost.addChild(StandardHost.java:727) at com.tongweb.catalina.core.ThanosStandardHost.addChild(ThanosStandardHost.java:710) at com.tongweb.web.thanos.startup.ThanosHostConfig.deployWar(ThanosHostConfig.java:231) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.fireWebtierProcess(ThanosWebtierWebAppBuilder.java:473) at com.tongweb.tw.thanos.ThanosWebtierWebAppBuilder.deployApplication(ThanosWebtierWebAppBuilder.java:384) at com.tongweb.deploy.TongWebDeployer.deploy0(TongWebDeployer.java:389) at com.tongweb.deploy.TongWebDeployer$1.run(TongWebDeployer.java:328) at java.lang.Thread.run(Thread.java:750)
10-15
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值