题目描述

问是否可以将一个仅由0~9组成的字符串划分成两个或两个以上部分,使得每一部分的数字总和相等。

输入

输入文件名为 \(divide.in\)

多组数据,第一行一个数\(n\),表示数据组数

接下来\(n\)行,每行包含一个字符串

输出

输出文件名为\(divide.out\)

输出n行,每行为 \(’YES’\) 或者 \(’NO’\) ,表示是否存在题目要求的划分方案。

样例输入

3
1248
2680
54174760

样例输出

NO
YES
YES

提示

【数据说明】

对于50%的数据,$ 2 \le Length \le 100 $

对于100%的数据,$ 1 \le n \le 5 , 2 \le Length \le 10^5 $

啊,这个题,我一直以为挺难的,是个DP,结果后来发现枚举就行.....当时心里那个mmp

枚举就简单了啊

我是枚举分成多少段,然后在原数列中去 $ check $ 是否可行,至于每一段的和,直接用总和作除法就行了

当然,如果说根本无法分成当前枚举到的段数,那么直接 $ continue $

否则就一直凑就行了,每一段的和我是维护前缀和然后 \(\Theta(1)\) 求的,这个题总体比较简单,毕竟是 CF Div2 的 C题改过来的,也不是很难

至于代码.....如下吧:

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#define LL long long const int N = 1e5 + 5 ;
LL T , sum[N] ;
char s[N] ;
bool f ; inline LL read(){
LL x = 0 , f = 1 ;char ch = getchar ();
while ( ch < '0' || ch > '9' ){if ( ch == '-' ) f = - 1 ;ch = getchar ();}
while ( ch >= '0' && ch <= '9' ){x = ( x << 3 ) + ( x << 1 ) + ( ch ^ 48 ) ;ch = getchar () ; }
return f * x ;
} int main(){
T = read (); sum[0] = 0 ;
while ( T -- ){
scanf ("%s" , s + 1 ) ; f = false ;
register int L = strlen ( s + 1 ) ;
for ( int i = 1 ; i <= L ; ++ i)
sum [i] = sum [ i - 1 ] + s[i] - '0' ;
if ( sum[L] == 0 ) { puts("YES") ; continue ;}
for ( int i = 2 ; i <= sum[L] ; ++ i){ // 枚举分成多少段
if ( sum[L] % i ) continue ; // 连整除都做不到还要你作甚
register int tmp = sum[L] / i , k = 0 ; // tmp是每段的和 , k是当前是第几段
if ( tmp == sum[L] ) continue ;
for (int j = 1 ; j <= L ; ++ j){
if ( sum[j] - k * tmp == tmp ) ++ k ; // 如果当前枚举到的子段和恰好与枚举的和相等,继续推进
else if ( sum[j] - k * tmp > tmp ) break ;// 否则,如果比当前枚举的和大,那么直接跳过,不鸟他
}
if ( k == i ) { f = true ; break ;}
}
if ( f ) puts ("YES");
else puts ("NO");
}
return 0;
}

清北-Day5-R2-divide的更多相关文章

  1. 清北Day4

    版权声明:如需转载请标明出处,未得到本人许可请勿转载. 今天就可以看到传说中的 数据结构 嘿嘿嘿嘿 都有什么呢 链表 队列 栈 st表 hash 线段树 树链剖分 一.栈: 放出来这个看烂了的图 值得 ...

  2. 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)

    清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...

  3. 清北学堂2017NOIP冬令营入学测试 P4744 A’s problem(a)

    清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算 ...

  4. 清北Day 2

    清北第二天,感受到了来自这个世界的不友善,大概把没听过不会的"名词"记录下来就已经一面了,然后被大佬说这都是最基础的东西,就很皮,那就趁别人练习字符串的题的时候,来写波博客了,倒不 ...

  5. 济南清北学堂游记 Day 1.

    快住手!这根本不是暴力! 刷了一整天的题就是了..上午三道题的画风还算挺正常,估计是第一天,给点水题做做算了.. rqy大佬AK了上午的比赛! 当时我t2暴力写挂,还以为需要用啥奇怪的算法,后来发现, ...

  6. 清明培训 清北学堂 DAY1

    今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#in ...

  7. 清北省选 DAY last 集锦

    这是题目描述的链接: http://lifecraft-mc.com/wp-content/uploads/2018/03/problems1.pdf (虽然这次没去清北,但还是厚颜无耻的做了一下这套 ...

  8. 2017.10.1 国庆清北 D1T1 zhx的字符串题

    题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法 ...

  9. 7月清北学堂培训 Day 3

    今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: S ...

  10. 清北考前刷题day5早安

    /* C(n,k) */ #include<iostream> #include<cstdio> #include<cstring> #define ll long ...

随机推荐

  1. PHP中的DateTime类

    DataTime类跟date(),strtotime(),gmdate()等函数有相同的作用,都是用来处理日期和时间的,但DateTime类更加直观.方便, 所以在PHP5.2.0以后推荐使用Date ...

  2. JS中的块级作用域,var、let、const三者的区别

    1. 块作用域{ } <script type="text/javascript"> { var a = 1; console.log(a); // 1 } conso ...

  3. BEX5下集成FullCalendar

    实现版本 BEX5 3.6 集成前准备: 直接网上查找FullCalendar获得插件文件 fullcalendar.min.css fullcalendar.min.js fullcalendar. ...

  4. Lodop简答问答大全

    其他相关简短问答:Lodop简短问答客户反馈篇 及排查步骤 及注册相关,Lodop某个电脑打印内容大小有问题,LODOP超文本简短问答和相关内容,LODOP.C-Lodop简短排查语句.Lodop.c ...

  5. Kindle官方广告“自封”泡面盖

    动点科技获悉:亚马逊出品的电子书阅读器 kindle 在最新投放天猫平台上的 banner 栏醒目位置投放了一组广告,令人大跌眼镜的是图片使用了 kindle 放在一桶泡面上的形式,怕你看不懂用意的官 ...

  6. MyBatis:二级缓存原理分析

    MyBatis从入门到放弃七:二级缓存原理分析 前言 说起mybatis的一级缓存和二级缓存我特意问了几个身边的朋友他们平时会不会用,结果没有一个人平时业务场景中用. 好吧,那我暂且用来学习源码吧.一 ...

  7. 爬虫与request模块

    一.爬虫简介 1.介绍 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁. ...

  8. java9最新发布

    链接:http://pan.baidu.com/s/1slbRFa9 密码:hcdj 给大家分享可以去下载 已接受的特性 1. Jigsaw 项目:模块化JDK源码 Jigsaw项目即JEP201是为 ...

  9. Django_modelform组件

    modelForm 组件 概念 将数据库与form 组件结合用起来的中间插件 与 form 组件的区别 form组件的难处: form 可以实现 对数据的验证以及 form 的表单标签的生成 但是她做 ...

  10. CF2B The least round way(dp+记录路径)

    B. The least round way time limit per test 2 seconds memory limit per test 64 megabytes input standa ...