您的位置:首页 > 其它

HDU 5776 sum(数学)

2016-07-30 21:50 351 查看
#include<stdio.h>
#include<string.h>
using namespace std;
int num[100010];
int flag[100010];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(flag,0,sizeof(flag));
int n,m;
scanf("%d%d",&n,&m);
flag[0]=1;
for(int i=0; i<n; i++)
{
int a;
scanf("%d",&a);
if(i!=0)
{
num[i]=num[i-1]+a;
}
else
{
num[i]=a;
}
}
int an=0;
for(int i=0; i<n; i++)                        //不需要 n方 找相同的 只要再开一个数组
{
if(flag[num[i]%m]==1)
an=1;
flag[num[i]%m]=1;
}
if(an==1)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
}
依赖算法和数据结构,而不去动脑想问题了。思维僵化。


sum

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)

Total Submission(s): 25    Accepted Submission(s): 15


Problem Description

Given a sequence, you're asked whether there exists a consecutive subsequence whose sum is divisible by m. output YES, otherwise output NO

 

Input

The first line of the input has an integer T (1≤T≤10),
which represents the number of test cases. 

For each test case, there are two lines:

1.The first line contains two positive integers n, m (1≤n≤100000, 1≤m≤5000).

2.The second line contains n positive integers x (1≤x≤100)
according to the sequence.

 

Output

Output T lines, each line print a YES or NO.

 

Sample Input

2
3 3
1 2 3
5 7
6 6 6 6 6

 

Sample Output

YES
NO

 

Source

BestCoder Round #85

 

Recommend

wange2014   |   We have carefully selected several similar problems for you:  5780 5779 5778 5777 5775 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: