CodeForce #319 div 2 B Modulo sum
来源:互联网 发布:sql delete in select 编辑:程序博客网 时间:2024/05/22 02:17
为了熟悉c++开始刷题。
需要注意这道题不用开大数组直接存dp就可以做了。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<set>#include<vector>using namespace std;int x;bool dp[1000], dp_[1000];int n, m;int main(){ scanf("%d%d",&n,&m); memset(dp,false,1000); memset(dp_,false,1000); for(int i = 0; i < n; i++) { scanf("%d", &x); if(dp[0]) break; for(int j = 0; j < m; j++ ) { if(dp_[j]) { dp[(j+x)%m] = true; // cout<<(j+x)%m<<" at the time of "<< i<< endl; } } dp[x%m] = true; memcpy(dp_,dp,sizeof(dp)); } if(dp[0]) cout<<"YES"; else cout<<"NO"; return 0;}感觉明明是O(mn)的大小,跑起来却特别快。不理解。自己用set也做了一遍。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<set>#include<vector>using namespace std;int x;set<int> g;vector<int> v;int n, m;int main(){ scanf("%d%d",&n,&m); bool find = false; for(int i = 0; i < n; i++) { scanf("%d", &x);// cout<<"size of "<<i <<" "<<g.size()<<"time for "<<a[i]<<endl; if(g.find(0)!=g.end()) break; // cout<<"size of "<<i <<" "<<g.size()<<endl; int size = v.size(), t; bool tmp; for(int j = 0; j<size; j++) { t = (v[j]+x)%m; tmp = g.find(t) !=g.end();// cout<< "iterator "<< *j<<endl; if(!tmp) v.push_back((v[j]+x)%m); g.insert((v[j]+x)%m); // cout<<*j<<" "<<(*j+a[i])%m<<endl; } t = x%m; tmp = g.find(t)!=g.end(); if(!tmp) v.push_back(t); g.insert(t);// cout<<a[i]<<endl; } if(g.find(0)!=g.end()) cout<<"YES"; else cout<<"NO"; return 0;}差不多是O(NMlogM)吧。理解了。
0 0
- CodeForce #319 div 2 B Modulo sum
- codeforce 577 B. Modulo Sum
- Codeforces Round #319 (Div. 2) 577B Modulo Sum(dp)
- Codeforces #319(Div.2) B. Modulo Sum (动态规划)
- Codeforces Round #319 (Div. 2) B Modulo Sum (背包)
- Codeforces Round #319 (Div. 2) B. Modulo Sum
- Codeforces Round #319 (Div. 2) B Modulo Sum
- Codeforces Round #319 (Div. 2) B. Modulo Sum
- Codeforces Round #319 (Div. 2)B. Modulo Sum(数学,DP)
- Codeforces Round #319 (Div. 2)——B. Modulo Sum(01背包)
- CF #319 B Modulo Sum
- codeforces #319 DIV2 577B Modulo Sum
- codeforce 247 div.2 B
- codeforces 577B Modulo Sum
- codeforces 577B Modulo Sum
- cf#319-div2-B. Modulo Sum-(dp) 求模
- Codeforce 214 Div 2 B.Hometask
- CODEFORCE 246 Div.2 B题
- "分享:AWS
- 提问:从EBS卷中删除Marketplace代码
- Double类parseDouble和valueOf方法的区别
- 网络防火墙策略限制定位问题
- 关于hadoop调度问题
- CodeForce #319 div 2 B Modulo sum
- 分享:高访问量Web应用跨云端迁移的原因:权限和易用性
- "Vcenter
- "Nginx服务器在使用HTML5
- 云计算学习
- 简洁的for(3)的define
- "分享:围观龙虎斗:谷歌GCE
- "如何将本地开发的系统迁移到云端,数据存储问题
- "如何将本地开发的系统迁移到云端,数据存储问题