当前位置:网站首页>To 3 --- 最后的编程挑战
To 3 --- 最后的编程挑战
2022-06-29 09:23:00 【陌陌623】
算是比较典型的dfs
每以为两种情况 这个不难
边界条件比较不容易判断,做的时候,调试了不少次才可
sum是全部位上的和,只有sum%3==0就可
删除:sum剪掉这一位上的数字
不删除:记得i要移动,意义是判断第i位
至于用string存储,感觉这个还是很容易想出的。
dfs中我感觉写的并不是太好,大佬看见的话,可以评论发下代码哦~。
#include <iostream>
using namespace std;
using ll = long long;
string N;
ll dfs(int k, int sum, int i)
{
ll res = 1e18;
// 0:全部都删去的情况
if (sum == 0)
return res;
if (sum % 3 == 0)
return k;
// 将第一个数字删除 i也是-1 所以sum%3的判断在上面
if (i == -1)
return res;
// 删除与否第i的数的两种情况
res = min(res, dfs(k, sum, i - 1));
res = min(res, dfs(k + 1, sum - N[i] + '0', i - 1));
return res;
}
int main()
{
cin >> N;
int sum = 0;
for (auto e : N)
sum += e - '0';
ll res = dfs(0, sum, N.size() - 1);
cout << (res == 1e18 ? -1 : res) << endl;
return 0;
}
边栏推荐
猜你喜欢

JVM之方法返回地址

IPC(进程间通信)之管道详解

RecyclerView 粘性(悬浮)头部

KDevelop new project

自定义控件之下载控件1(DownloadView1)

Codeforces Round #659 (Div. 2)

A 2.5D Cancer Segmentation for MRI Images Based on U-Net

Application of keil5 integrated development environment for single chip microcomputer

Alternative implementation of Scrollview pull-down header amplification

520 钻石争霸赛 2021
随机推荐
2020-09-21 Visual Studio头文件和库目录配置
Leetcode MySQL database topic 180
自定义控件之侧滑关闭 Activity 控件
JVM之方法的绑定机制
内网穿透工具frp使用入门
Codeforces Round #641 Div2
Codeforces Round #645 (Div. 2)
RecyclerView 粘性(悬浮)头部
Symphony tutorial
Wechat applet rewrites the page function to realize global logging
sympy的dsolve函数
2020-09-25 boost库的noncopyable,用于单例模式
The collapsing "2.3 * 10 = 22" produced by multiplying float and int
JVM之虚拟机栈之动态链接
GSOAP example - calc
HDU 4578 Transformation(线段树+有技巧的懒标记下放)
FreeRTOS(八)——时间管理
JVM instructions for four call methods
Flutter 基础组件之 Container
container