BZOJ3721: PA2014 Final Bazarek
来源:互联网 发布:淘宝助理5.4官方下载 编辑:程序博客网 时间:2024/05/22 16:55
要求和为奇数,就是选奇数个奇数,任意个偶数
将n个数按奇偶分类,f[i],g[i]表示取i个数和最大,取了f[i]个奇数,g[i]个偶数,显然都是各自最大的f[i],g[i]个
转移的时候枚举取出的是奇数还是偶数,从i-2,i-1转移到i
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long longusing namespace std;inline void read(int &x){ char c; while(!((c=getchar())>='0'&&c<='9')); x=c-'0'; while((c=getchar())>='0'&&c<='9') (x*=10)+=c-'0';}const int maxn = 1100000;int n,m;int a[maxn],b[maxn],an,bn;ll ans[maxn];int f[maxn],g[maxn];int main(){ read(n); for(int i=1;i<=n;i++) { int x; read(x); if(x&1) a[++an]=x; else b[++bn]=x; } sort(a+1,a+an+1); sort(b+1,b+bn+1); memset(ans,-1,sizeof ans); if(an) ans[1]=a[an],f[1]=1,g[1]=0; for(int i=2;i<=n;i++) { if(f[i-2]+2<=an&&ans[i-2]!=-1) { int p=an-f[i-2]; if(ans[i]<ans[i-2]+a[p]+a[p-1]) ans[i]=ans[i-2]+a[p]+a[p-1],f[i]=f[i-2]+2,g[i]=g[i-2]; } if(g[i-1]+1<=bn&&ans[i-1]!=-1) { int p=bn-g[i-1]; if(ans[i]<ans[i-1]+b[p]) ans[i]=ans[i-1]+b[p],f[i]=f[i-1],g[i]=g[i-1]+1; } } read(m); while(m--) { int x; read(x); printf("%lld\n",ans[x]); } return 0;}
阅读全文
0 0
- 【bzoj3721】 PA2014 Final Bazarek
- 【bzoj3721】PA2014 Final Bazarek
- BZOJ3721: PA2014 Final Bazarek
- [BZOJ3721]PA2014 Final Bazarek 单调性
- [bzoj3721]Final Bazarek
- 3721: [PA2014] Final Bazarek 乱搞
- 3721: PA2014 Final Bazarek|贪心
- bzoj 3721 PA2014 Final Bazarek
- BZOJ 3721 PA2014 Final Bazarek
- 【BZOJ】【P3721】【PA2014 Final】【Bazarek】【题解】【DP】
- BZOJ 3721 PA2014 Final Bazarek 贪心
- BZOJ系列3721《PA2014 Final Bazarek》题解
- 【 BZOJ 3721】 PA2014 Final Bazarek 贪心
- 【PA2014Final】【BZOJ3721】Bazarek
- 【bzoj3721】 PA2014Final Bazarek 贪心
- bzoj 3721: PA2014 Final Bazarek 单调栈+贪心
- bzoj3721PA2014 Final Bazarek 贪心
- 【PA2014】【BZOJ3728】Final Zarowki
- Angular添加删除查找排序日期等
- Java基础部分第二十四节
- Unable to connect to zookeeper server within timeout: 5000
- XRecyclerView/Main
- Java基础部分第二十五节
- BZOJ3721: PA2014 Final Bazarek
- 表单验证(正则表达式)
- C语言中巧妙的使用#和##
- Day 012
- JAVA类加载机制
- swagger 配置
- 面试之Java序列化
- 如何PullToRefreshScrollView里面嵌套GridView
- Java基础部分第二十七节