2019牛客网暑假多校训练第四场 K —number
链接:https://ac.nowcoder.com/acm/contest/884/K
来源:牛客网
题目描述
输入描述:
- A single line consisting a string consisted of characters '0' to '9'.
输出描述:
- The number of substrings that are multiples of 300 when considered as decimal integers.
- 题解:首先我们分析满足条件的情况:能被300整除的子串
1.串的最后两位肯定为00
2.前面的各位和肯定能整除以3
所以我们可以 开一个变量 sum, 记录下 ”前i位的和 mod 3 的情况“。 情况有三种:sum==0,sum==1,sum==2
再开一个数组 cnt[],记录下 ”前i为的和 mod 3 的情况 出现的次数“。也就是只记录 cnt[0],cnt[1],cnt[2]
为什么要记录 1和2的情况呢?举个例子:
在[L,R]的区间中,如果 在L处的sum 和 在R处的sum相等的话,那么就意味着 L~R的数位和 mod 3 == 0.也就是[L,R]为一个能整除3的子串。
- //#pragma comment(linker, "/STACK:1024000000,1024000000")
- //#pragma GCC optimize(2)
- //#include <bits/stdc++.h>
- #include <algorithm>
- #include <iostream>
- #include<fstream>
- #include<sstream>
- #include<iterator>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<cstdio>
- #include<cctype>
- #include<vector>
- #include<deque>
- #include<queue>
- #include<stack>
- #include<map>
- #include<list>
- #include<set>
- using namespace std;
- typedef double dou;
- typedef long long ll;
- typedef pair<int, int> pii;
- typedef map<int, int> mii;
- #define pai acos(-1.0)
- #define M 100005
- #define inf 0x3f3f3f3f
- #define mod 1000000007
- #define left k<<1
- #define right k<<1|1
- #define lson L, mid, left
- #define rson mid + 1, R, right
- #define W(a) while(a)
- #define ms(a,b) memset(a,b,sizeof(a))
- #define Abs(a) (a ^ (a >> 31)) - (a >> 31)
- char str[M];
- int cnt[M];
- int main()
- {
- ios::sync_with_stdio(false);
- cin.tie(nullptr), cout.tie(nullptr);
- W (cin>>str) {
- ll ans = ;
- int len = strlen(str);
- for (int i = ; i < len; i++) {
- if (str[i] == '') ans++;//先统计单个0的情况
- }
- cnt[] = ;
- int sum = ;//前i位mod 3的值
- for (int i = ; i < len; i++) {
- sum += str[i] - '';
- sum %= ;
- if (i + < len && str[i] == '' && str[i + ] == '') {//满足尾数为00 且在长度范围内
- ans += cnt[sum];
- }
- cnt[sum]++;//cnt[0] 、cnt[1]、cnt[2]
- }
- cout << ans << endl;
- }
- return ;
- }
2019牛客网暑假多校训练第四场 K —number的更多相关文章
- 2019牛客多校训练第四场K.number(思维)
题目传送门 题意: 输入一个只包含数字的字符串,求出是300的倍数的子串的个数(不同位置的0.00.000等都算,并考虑前导零的情况). sample input: 600 1230003210132 ...
- nowcoder(牛客网)提高组模拟赛第四场 解题报告
T1 动态点分治 就是模拟..... 但是没有过!! 看了题解之后发现.... 坑点:有可能 \(x<=r\),但是
- HDU6621 K-th Closest Distance HDU2019多校训练第四场 1008(主席树+二分)
HDU6621 K-th Closest Distance HDU2019多校训练第四场 1008(主席树+二分) 传送门:http://acm.hdu.edu.cn/showproblem.php? ...
- 牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game
链接:https://www.nowcoder.com/acm/contest/125/A来源:牛客网 Tony and Macle are good friends. One day they jo ...
- 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...
- 2018牛客网暑假ACM多校训练赛(第三场)G Coloring Tree 计数,bfs
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G ...
- 2018牛客网暑假ACM多校训练赛(第三场)D Encrypted String Matching 多项式 FFT
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-D.html 题目传送门 - 2018牛客多校赛第三场 D ...
- 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...
- 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html 题目传送门 - https://www.n ...
随机推荐
- Oracle-SQL 建表
建立员工分类表: 员工分类表结构.内容分别如下图: 一.使用PL/SQL Dev 这类可视化工具直接创建表 1.建立表结构 新建-table-名称(egrade) 然后 列:创建表结构 2. ...
- 140-PHP类的抽象方法和继承
<?php abstract class father{ //定义一个抽象类 abstract public function test(); //定义抽象方法 } class son exte ...
- JAVA - SpringBoot项目跨域访问
JAVA - SpringBoot添加支持CORS跨域访问 CORS(Cross-Origin Resource Sharing)“跨域资源共享”,是一个W3C标准,它允许浏览器向跨域服务器发送Aja ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-lock
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Elasticsearch 集群 - 健康检查
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...
- springMVC上传文件和文件下载
springMVC.xml文件 <bean id="multipartResolver" class="org.springframework.web.multip ...
- C# Stream篇(五) -- MemoryStream
MemoryStream 目录: 1 简单介绍一下MemoryStream 2 MemoryStream和FileStream的区别 3 通过部分源码深入了解下MemoryStream 4 分析Mem ...
- OpenCV学习日志:计算机视觉资源汇总
1.1 重要会议 (1)机器视觉重要会议 CVPR:Conferenceon Computer Vision and Pattern Recognition, IEEE, 五星 ICCV:Intern ...
- 【剑指Offer】面试题10- I. 斐波那契数列
题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2) ...
- jQuery实现点击div外的区域,来隐藏指定节点
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script sr ...