每个人 都有自己独有的计数方式  比如以下  字符串111123455可以表示为4个1,1个2,1个3,1个4,2个5.为了方便记忆就表示为4--1,1--2,1--3,1--4,2--5当然顺序肯定不能变换  计数方式可以表示为“a--b”的形式  在计数方式中相连的b互不相等且a与b不为0   独有的计数方式 如果转化为字符串  字符串的长度小于10的9次方

给你下面的计数方式    例如5--4也就是字符串44444,10--4也就是字符串4444444444

给你这样的计数方式  判断这个字符串中有多少连续子串所构成的整数是4的倍数

例如5--4可表示为字符串44444里面共有(4,4,4,4,4,44,44,44,44,444,444,444,4444,4444,44444)15个是4的倍数;

输入

第一行是数字T(T<1000)

每一行一个独有的计数方式  长度小于100

输出

输出字符串中有多少个是4的倍数  占一行

样例输入

4
5--4
1--1,1--2
2--4,2--2,2--3
1--4,1--3,1--2,1--1

样例输出

15
1
3
3

思路:

这是一道模拟题,首先要解决怎么判断一个字串是不是 4 的倍数,如果这个字串长度小于等于2,那么直接可以去去求它的值然后判断是不是4的倍数,如果长度大于2,那么找到这个字串最低的两位,也就是个位和十位,也就等同于把这个字串代表的数用100取余,如果这两位的值是4的倍数,那么这个字串就是4的倍数,反之不是,道理很简单,不做证明。

开始模拟,现在取一个字符串中的字符,它前面有 c 个字符, 求以这个字符结尾的 4的倍数的子串数方法如下:如果这个字符转化成数字是四的倍数那么结果加一,如果 c > 0, 这个字符与前一字符转化成数字是四的倍数,那么结果加 c ;

累加每个字符 结尾的 4的倍数的子串数就是最终结果。

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
long long  a[110][2];int main()
{int T;cin >> T;char ch[110];while(T--) {cin >> ch;int len = strlen(ch);int num = 1;int cnt = 0, temp;for(int i=0; i<len; i++) {if(isdigit(ch[i]) && num == 1) {temp = 0;while(isdigit(ch[i]) && i < len) {temp = temp*10 + ch[i]-'0';i++;}a[++cnt][0] = temp;i--;num = 0;continue;}if(isdigit(ch[i]) && num == 0) {temp = 0;while(isdigit(ch[i]) && i < len) {temp = temp*10 + ch[i]-'0';i++;}a[cnt][1] = temp;i--;num = 1;}}long long c = 0, ans = 0;a[0][0] = 0, a[0][1] = 0;for(int i=1; i<=cnt; i++) {if(a[i][1]%4 == 0) {ans ++;}if((a[i-1][1]*10+a[i][1])%4 == 0)ans += c;if(a[i][0] > 1 && (a[i][1]*10+a[i][1])%4 == 0) {ans += (c+2 + c+a[i][0])*(a[i][0]-1)/2;}c += a[i][0];}cout << ans << endl;}return 0;
}

2049 :压死骆驼的最后一根稻草 (模拟)相关推荐

  1. 2049 : 压死骆驼的最后一根稻草 (规律)

    I got that power 题目描述 每个人 都有自己独有的计数方式 比如以下 字符串111123455可以表示为4个1,1个2,1个3,1个4,2个5.为了方便记忆就表示为4–1,1–2,1– ...

  2. ZZNU 压死骆驼的最后一根稻草 规律题

    J : 压死骆驼的最后一根稻草 Progress Bar 时间限制:1 Sec 内存限制:128 MiB 提交:179 答案正确:34 题目描述 每个人 都有自己独有的计数方式  比如以下  字符串1 ...

  3. 压死骆驼的最后一根稻草——写下自己的阶段感受与总结

    感觉是应该写点东西了,这段时间一直在疑惑,关于考研的问题,其实心里也明白,只要自己实力强,到哪都有希望,不过毕竟想有个更好 的平台,更好的学校罢了,最近在浏览一些牛人的百科时,总是会很留意的看下是哪所 ...

  4. UI设计——最后一根稻草

    WindowsLive提供的本地地图服务看起来挺简单的,但其实非常难用: 跟其他人一样,每当我接触到一个新的地图服务,我做的第一件事总是拿当前的地址去试一试.我在上面输入的是我工作的地方.但是,当我敲 ...

  5. 3.一根稻草可能会压死一头牛

    一次,一位记者朋友跟我约好,下午四点钟在我办公室见面,谈点儿事情. 到了约定的时间,她没来.过了一刻钟,她出现在我办公室门口,神色慌张,满头大汗,连声说对不起.我看出她有很深的自责. 谈完预约的事情后 ...

  6. MVP群聊某美国公司的应聘试题(压死九个还是一个)

    某美国公司的应聘试题(压死九个还是一个),测试你的管理方式有二条铁轨,一条新的,一条旧的.有了新铁轨后,旧铁轨不再有火车通过.有一天有十个小孩到铁轨上玩耍,九个小孩在新铁轨上玩,其中有一个小孩在旧铁轨 ...

  7. 压死了,压死了。。。

    上课看<深入浅出MFC>,感觉就是好书啊好书,不像<TC++PL>让我犯困...:),一直对国人写的书或多或少有些偏见,但是这本的确相当的棒. 回宿舍就写写基本的数据结构和算法 ...

  8. 超卖频发or商品滞销?压倒卖家的最后一根稻草竟是库存!

    超卖频发or商品滞销?压倒卖家的最后一根稻草竟是库存! 云南逸神生态茶业有限公司便是一家从最初的单体销售到目前的生产.加工.销售一体化经营,并拥有60多家遍布云南省内.省外城市的直营专卖店.想要发展壮 ...

  9. 爆料:学术生涯遭重创,才是压垮张首晟教授的最后一根稻草

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 世间再无张教授,但"区块链投资失败"的原因,有人听不下去了. 这位接近张首晟教授的人士爆料,教授之逝,无关区块链投资, ...

最新文章

  1. 将python3.1+pyqt4打包成exe
  2. 例题:青歌赛打分程序。去掉两个最高分,去掉两个最低分,再算平均分。主要学习数组和冒泡排序,什么情况下要定义数组...
  3. 【深圳】.NET 技术分享交流会
  4. 参数php_PHP多参数方法的重构
  5. C语言 strlen 函数 - C语言零基础入门教程
  6. GIT关联本地仓库与远端仓库
  7. kaggle房价预测特征意思_Kaggle之预测房价
  8. 4 计数器verilog与Systemverilog编码
  9. 机器学习——支持向量机(SVM)
  10. 移动硬盘测试扩容卡软件,U盘扩容检测教程,优盘容量真实性检测,TF卡移动硬盘SD卡内存卡...
  11. 非科班转码,上岸小公司我也很满意了
  12. 什么是机器翻译,主要有哪几种类型?
  13. c语言编程正六边形思路,机械cad-cam技术实验指导书2015.doc
  14. B - Restore Modulo
  15. io.seata.common.exception.ShouldNeverHappenException: Could not found any index in the table
  16. MD5加密算法的原理和应用
  17. 纳豆红曲胶囊价格作用怎么样!
  18. 马士兵java ppt_[马士兵JAVA教程课件.ppt
  19. c语言中 p2 amp n1表示什么意思,2005年9月全国计算机等级考试二级C语言笔试试题及答案mjj...
  20. matlab 伯德图 横坐标步长_使用MATLAB的m函数画伯德图,设置显示横坐标为HZ

热门文章

  1. 小米note2 刷android,小米Note2 安卓9.0 原生体验 LineageOS16.0 ROOT
  2. LeetCode498之对角线遍历(寻找规律)
  3. 狼人杀剧本杀哪些明星有玩过?
  4. Android Q 新特性
  5. visio 2010
  6. MIPS架构下的逆向初探
  7. 台州学院学费计算机与应用,台州学院学费多少
  8. PHP session锁:如何避免session阻塞PHP请求
  9. 造梦西游法宝有哪些?怎么得?
  10. Cadence——每次启动软件弹出找不到license文件的提示窗口