CodeForces 577B 模和vecto

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 577B 模和vecto相关的知识,希望对你有一定的参考价值。

上一年的最后一次训练赛被卡了AK...

一开始天真的认为每个数字都进行取模 然后认为它是一个vol为取模后的数 val为0的01背包 去计算dp[m]能否被装满

只想到了其中的一点..简直天真 

后来看百度学习了一下vector的部分用法 

头文件是queue 可以从0向q.size()遍历  for(int i=0;i<len;i++)

push_back() 往最后面放数

size()大小

再加个数组来判断某个数字是否出现过 把每次的东西都遍历一遍 

如果每次输入x后不进行ok的判断会超时 最多是O(n*n)吧貌似。。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
using namespace std;
int main(){
int n,m;
while(~scanf("%d%d",&n,&m))
{
    map<int ,int >f;
    f.clear();
    bool ok=false;
    vector<int >q;
    int x;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&x);
        x%=m;
        int len=q.size();
        if(ok==false)
    {


        for(int k=0;k<len;k++)
        {
            int e=(q[k]+x)%m;
            if(e==0)
                ok=true;
            if(f[e]==0)
            {
                q.push_back(e);
                f[e]=1;
            }
        }
        if(f[x]==0)
        {
            q.push_back(x);
            f[x]=1;
        }
        if(x==0)
            ok=true;
    }
    }
    if(ok==true)
    {
        printf("YES\n");
    }
    else printf("NO\n");
}
}

  

嗯...acm真正进行半年了(其实是从九月多到二月多 五个月左右...)

嗯 以后也要努力!

以上是关于CodeForces 577B 模和vecto的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 577B Modulo Sum:数学 结论选数之和为m的倍数

B. Filling the Grid codeforces

CodeForces 618A Slime Combining

Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!

Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!

取模和取余详解