nyoj 590 相同的和 【水题(暴力)】
2015-08-30 11:59
323 查看
相同的和
时间限制:1000 ms | 内存限制:65535 KB[align=center]难度:1[/align]
描述
给出一些数a1,a2,a3,a4.....,an,如果一个连续的字串的和等于常数m,那么这个子串就是我们想要的,那么问题很简单,请求出这样字串的个数?
例如:数列为:3,4,1,6,2,5。m 的值为7时,连续字串{3,4},{1,6},{2,5}满足要求。
输入每种情况,第一行2个数n,m,n表示有多少个数,m是常数
第二行是n个数的值 (所有的数小于1000)
输出每种情况个数样例输入
6 7 3 4 1 6 2 5 3 1 2 3 4
样例输出
3 0
来源刘成上传者刘成
思路:
通过循环从第一个数开始加,然后看看如果相同就t++,如果大于m就只能从第二个数开始遍历了!具体看代码:
代码:
#include <stdio.h> #include <string.h> int a[1000005]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } int s; int t=0; for(int i=1;i<=n;i++)//统计以所有的数开始的字串 { s=a[i]; if(s==m)//因都应该为有可能这个字串中就有一个m,所以每一个数都应该进行遍历 {//并且还得提前判断这个数是不是m,如果是就直接从下一个数开始! t++;//就因为这一点wa了 一次! continue; } for(int j=i+1;j<=n;j++) { s+=a[j]; if(s==m) { t++; break; } else if(s>m) { break; } } } printf("%d\n",t); } return 0; }
相关文章推荐
- RabbitMQ 入门
- scala 14 trait
- Schedule
- Ubuntu 14.04搭建Android5.1开发环境和编译
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 11 浏览器事件
- 【英语】Bingo口语笔记(60) - 口语中的浊化发音
- scala 13 抽象类 字段方法
- QMap 的增删改查
- GYM 100345E New Mayors(二分图染色)
- hdu5424 Rikka with Graph II(n个点n条边的图判哈密顿通路)
- hdoj 3987 Harry Potter and the Forbidden Forest 【求所有最小割里面 最少的边数】
- POJ 1006 Biorhythms
- windows C++ 多任务并发执行设计
- PCIE协议解析 synopsys IP Power Management Capability 读书笔记(10)
- 自定义控件出属性设置
- xmu 1018 零零漆的作
- 借贷宝有多少人看得懂?借贷宝系统崩溃分析
- BZOJ 1009: [HNOI2008]GT考试( dp + 矩阵快速幂 + kmp )
- Gym 100345H Settling the Universe Up
- scala 第12讲 继承 构造