BZOJ 3544 ONTAK2010 Creative Accounting 平衡树
来源:互联网 发布:列主元三角分解法C语言 编辑:程序博客网 时间:2024/06/03 14:23
题目大意:给定一个序列,求一个区间之和mod m的值最大
维护一个前缀和,每次利用set寻找第一个比当前值大的数,如果找不到就去找整个set中最小的数,然后将当前前缀和加入set
注意set中upper_bound的写法
upper_bound(s.begin(),s.end(),a[i])是O(n)的
s.upper_bound(a[i])才是O(logn)的
好坑。。。。。
#include <set>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 200200using namespace std;int n;long long a[M],m,ans;set<long long> s;int main(){int i;cin>>n>>m;for(i=1;i<=n;i++){scanf("%lld",&a[i]);((a[i]%=m)+=m)%=m;(a[i]+=a[i-1])%=m;}s.insert(0);for(i=1;i<=n;i++){set<long long>::iterator it=s.upper_bound(a[i]);if(it==s.end()) it=s.begin();ans=max(ans,(a[i]-(*it)+m)%m);s.insert(a[i]);}cout<<ans<<endl;return 0;}
1 0
- BZOJ 3544 ONTAK2010 Creative Accounting 平衡树
- bzoj 3544: [ONTAK2010]Creative Accounting treap
- bzoj 3544: [ONTAK2010]Creative Accounting (STL)
- BZOJ 3544 ONTAK 2010 Creative Accounting 贪心+平衡树
- 【bzoj3544】[ONTAK2010]Creative Accounting
- 【bzoj3544】【ONTAK2010】Creative Accounting【set】
- BZOJ3544 [ONTAK2010]Creative Accounting 前缀和乱搞
- [bzoj3544][ONTAK2010]Creative Accounting(set)
- [BZOJ3544][ONTAK2010]Creative Accounting(数学相关+set)
- bzoj 3545 [ONTAK2010]Peaks 平衡树启发式合并
- 【BZOJ】【P3545】【ONTAK2010】【Peaks】【题解】【离线+并查集+平衡树启发式合并】
- bzoj 3545: [ONTAK2010]Peaks 线段树合并
- BZOJ 3545: [ONTAK2010]Peaks 线段树合并
- [BZOJ3545][ONTAK2010][平衡树][STL][启发式合并]Peaks
- 【bzoj 3543】: [ONTAK2010]Garden
- BZOJ 3545 [ONTAK2010] Peaks
- [主席树 Kruscal] BZOJ 3545 [ONTAK2010]Peaks & 3551 [ONTAK2010]Peaks加强版
- 【BZOJ 3545】 [ONTAK2010]Peaks 最小生成树+kruskal重构树
- 初始MVC
- UITableView
- 二级指针基础知识
- 数据结构与算法(day-2)--算法效率的度量方法
- Going from u to v or from v to u? - POJ 2762 Tarjan+拓扑排序
- BZOJ 3544 ONTAK2010 Creative Accounting 平衡树
- HDOJ 1235 统计同成绩学生人数(水)(浙大2006研究生复试)
- Codeforces 421D Giving Awards 策略题
- ILI9341 8080接口1
- 数据结构与算法(day-3)线性表
- POJ 题目3267 The Cow Lexicon(动态规划)
- Python post test
- UVA 11488-Hyper Prefix Sets(trie树+DFS)
- 2015新年好