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!