[jzoj]1417.数学题
Link
https://jzoj.net/senior/#main/show/1417
Problem
当Alice在浏览数学书时,看到一个等式A=S,奇怪的是A和S并不相等。Alice发现可以通过在A中添加加号“+”从而使得等式成立。
编程计算最少需要插入多少加号使得等式成立。允许每个数有多个前导0。
Solution
20分
暴力乱搞
100分
我们可以想到动态规划。
设f[i,j]表示选到前i个数,和为j所加的最少加号个数是多少。
我们枚举i,j,k,如图标明位置

其中,我们要把k~i这些数弄成一个数,独立起来,也就是说,在k前面放一个加号。
显然,转移就是f[i,j+ans]=min{f[i,j+ans],f[k,j]},Ans就是k~i这些数组合成一个的那个新的数。
还有一种情况就不放加号
f[i,j*10+a[i]]=min{f[i,j*10+a[i]],f[i-1,j])。很显然,你这么做最多加4次,你就会被挂了,因为一直不放加号,数的大小可想而知。
到目前为止,时间复杂度是O(n³),显然你会炸的巴拉巴拉的
唯一可能优化的就是k,其实k枚举这么多是不必要的,关键还是0的问题
所以,我们对输入的字符串处理一下,最多只能有4个连续的0
时间复杂度:O(4n²)
[jzoj]1417.数学题的更多相关文章
- JZOJ 5773. 【NOIP2008模拟】简单数学题
5773. [NOIP2008模拟]简单数学题 (File IO): input:math.in output:math.out Time Limits: 1000 ms Memory Limits ...
- ytu 2558: 游起来吧!超妹!(水题,趣味数学题)
2558: 游起来吧!超妹! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 7 Solved: 3[Submit][Status][Web Board ...
- sdut 2416:Fruit Ninja II(第三届山东省省赛原题,数学题)
Fruit Ninja II Time Limit: 5000MS Memory limit: 65536K 题目描述 Have you ever played a popular game name ...
- python解无忧公主数学题107.py
python解无忧公主数学题107.py """ python解无忧公主数学题107.py http://mp.weixin.qq.com/s?__biz=MzI5ODE ...
- python解无忧公主数学题108
""" python解无忧公主数学题108回文.py 题目来源: http://mp.weixin.qq.com/s?__biz=MzI5ODEwMDQyNw==& ...
- HDU 圆桌会议 - 数学题
圆桌 题意就是每分钟可以将相邻的两个人的位置互换一下 , 问你 ,几分钟可以将所有人的位置互换成 原先的 B 在A的右边 C在A的左边 , 换成现在的 C 在A 的右边 , B 在 A 的 ...
- HDU 2529 Shot (物理数学题)
题目 解题过程: //物理数学题 #include<stdio.h> #include<string.h> #include<algorithm> using na ...
- HDU 2671 Can't be easier(数学题,点关于直线对称)
题目 //数学题//直线 y = k * x + b//直线 ax+by+c=0; 点 (x0,y0); 点到直线距离 d = (ax0+by0+c)/sqrt(a^2+b^2) /********* ...
- ACM之数学题
数学题,始终记得,第一次被带飞师大校赛以及省赛,毫无例外的在数学题上卡死....因此,现在开始,有意识的保留遇见的数学题...(下列知识点按遇见先后顺序排列: 1欧拉公式 欧拉公式的用处是,找出小于N ...
随机推荐
- java编译通过,为什么运行却提示找不到或无法加载主类?
java编译通过,为什么运行却提示找不到或无法加载主类? https://www.zhihu.com/question/36537093 这边提供一个关于程序中含有package关键字,使用“终端”运 ...
- HashMap、HashTable与ConcurrentHashMap区别
线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.例如,执行如下代码会引起死循环. fin ...
- Java基础知识➣多线程编程(五)
概述 Java 给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径.使用多线程也是为了充分的利用服务器资源, ...
- pycharm创建python模板文件
1.新建一个项目: 2.右键单击项目名称-->选择新建-->编辑模板文件 3.编辑模板文件保存 4.新建文件测试 至此不再重复添加头部信息了
- 【转】WPF中的窗口的生命周期
原文地址:http://www.cnblogs.com/Jennifer/articles/1997763.html WPF中的窗口的生命周期 WPF中所有窗口的基类型都是System.Windows ...
- 通过awk获取netstat命令中的进程号
需要如下: 获取进程号
- Flink--3种分区方式
partitionByHash //TODO partitionByHash val data = new mutable.MutableList[(Int, Long, String)] data. ...
- img 标签的 usemap 属性
<img src="1.gif" alt="Planets" usemap="#Map"/> <map name=&quo ...
- sublime text3 中 python3编译出现中文乱码解决方法
转 https://blog.csdn.net/Bin_bin_bingo/article/details/80531582 一.乱码现象 利用sublime自带编译快捷方式ctrl+B会出现中文乱码 ...
- VirtualBox查看虚拟机IP地址
在终端输入如下内容 ifconfig 结果如图所示 eth0 内容中 inet 后的地址10.0.2.15即为虚拟机IP地址,lo 中的 inet 后的地址时本地环回,用于测试网络