标签:26 20 int nowans num 结训 ans ll backpos
K - Subarrays OR
类似DP,前缀和#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int>pii; const int N=1e5+10; int n; set<ll> preans,nowans,ans; signed main() { int t; cin>>t; while(t--) { ans.clear(); preans.clear(); cin>>n; for (int i=1; i<=n; i++) { ll x; cin>>x; nowans.clear(); nowans.insert(x); ans.insert(x); for (auto y:preans) { nowans.insert(x|y); ans.insert(x|y); } preans=nowans; } cout<<ans.size()<<"\n"; } return 0; }
最近在搞DFS,虽然DFS暴搜不能过,但是调出来就不错了,卑微
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int>pii; const int N=1e5+10; unordered_map<ll,bool>mp; ll a[N]; int n; void dfs(int u,ll num,int backpos) { if (!backpos) { return; } if (backpos) { num=num|a[u]; mp[num]=1; backpos--; dfs(u+1,num,backpos); } } signed main() { int t; cin>>t; while(t--) { mp.clear(); cin>>n; for (int i=1; i<=n; i++) cin>>a[i]; for (int i=1; i<=n; i++) { int backpos=n-i+1; dfs(i,a[i],backpos); } cout<<mp.size()<<"\n"; } return 0; }
标签:26,20,int,nowans,num,结训,ans,ll,backpos 来源: https://www.cnblogs.com/Mercury1988/p/16496914.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。