题目大意:给出3*N的非负整数,分配到3个长度为N的数组A,B,C中。定义三个数组的GAL值,GAL(A,B,C)=Σ(A[i]-B[i])*C[i],1 ≤ i ≤ N。求出GAL(A,B,C)的最大值。

#include <cstdio>
#include <algorithm>
#include <functional>
using namespace std;
typedef long long LL;
int T,n,N,topa,topc,s[100],a[30],b[30],c[30];
LL ans,now;
bool used[100];
bool check(int x) {for(int i=1;i<x;i++)if((c[i]>a[x] && a[i]-b[i]<c[x]) || (c[i]<a[x] && a[i]-b[i]>c[x]))return false;return true;
}
void dfs(int x,int pos) {if(x==n+1) {ans=max(ans,now);return ;}for(int i=x;i<=2*n;++i) {if(used[i]) continue;used[i]=true;a[x]=s[i];for(int j=max(i,pos)+1;j<=2*n;++j) {if(used[j]) continue;used[j]=true;c[x]=s[j];now+=(a[x]-s[3*n-x+1])*c[x];if(now*n>ans*x && check(x))dfs(x+1,j);now-=(a[x]-s[3*n-x+1])*c[x];used[j]=false;}used[i]=false;break;}return ;
}
int main() {for(scanf("%d%d",&T,&n),N=3*n;T;T--) {ans=0;for(int i=1;i<=N;++i) scanf("%d",s+i);sort(s+1,s+N+1,greater<int>());for(int i=1;i<=n;++i) b[i]=s[N-i+1];dfs(1,0);printf("%lld\n",ans);}return 0;
}

BZOJ 3699 GAL的数组相关推荐

  1. bzoj 4278 Tasowanie 后缀数组+贪心

    题目大意 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T.\(len \leq 200000\) 题解 我们从归并排序的角度去想,每次把两者之一较小的取出来 ...

  2. BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)

    BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...

  3. 【BZOJ3669】【codevs3314】魔法森林,写作LCT,读作SPFA

    传送门1 传送门2 写在前面:我要种树!! 思路: SPFA:理论复杂度很蛋疼,但实际效果不错,按a排序(b也可以)后从小到大枚举每条边,dis数组不必清空,每次往队列里扔进当前边的两个端点进行拓展, ...

  4. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  5. 记录错误or日记(更新中)

    前言: 从2018.8-17开始记录 本篇随笔记录做题时的小错误(大多数),考试总结(懒得总结了),做过的每个题的错误 2019.8.10 欧吼 2019.8.9 台风呢,台风呢,被我的砖头本挡住了. ...

  6. 269道各路算法考试题集锦

    1 某编程大赛题(35道题,中等难度) 1.在实际的开发工作中,对于string的处理是最常见的编程任务,本题是要求程序对用户输入的string进行处理,具体要求如下: 1.每个单词的首字母变为大写. ...

  7. BZOJ 2141 排队(块套树,分块,树状数组)【BZOJ修复工程】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2141 是 hydro 的 BZOJ ...

  8. [BZOJ 3238] [AHOI 2013] 差异 【后缀数组 + 单调栈】

    题目链接:BZOJ - 3238 题目分析 显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显. 求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组. 那么 ...

  9. BZOJ.4888.[TJOI2017]异或和(树状数组)

    BZOJ 洛谷 \(Description\) 求所有区间和的异或和. \(n\leq 10^5,\ \sum a_i\leq 10^6\). \(Solution\) 这样的题还是要先考虑按位做. ...

最新文章

  1. 说说CSRF的***
  2. Win7 VS2013环境编译Squirrel 3.0.7
  3. 数据结构与算法笔记(七)—— 选择排序
  4. 使用MAT做jvm的GC Roots溯源
  5. PHP微信支付没有收到微信的回调怎么修改订单状态:主动查询
  6. 欢乐纪中某A组赛【2019.7.10】
  7. LVS高可用方案汇总
  8. 服务器iis配置 所需文件,iis服务器配置手册.pdf
  9. django orm 数据查询详解
  10. 自己动手写crud+分页 出现问题
  11. 记风雨兼程的2020年,2021年,我来了!
  12. win10计算机磁盘图标,win10系统本地磁盘图标显示异常如何恢复
  13. 闪字在线制作php源码,闪光字图片制作 在线制作图片加闪光字
  14. 【java】java实现pdf根据内容定位插入图片
  15. 俄勒冈州立大学计算机科学专业,俄勒冈州立大学电气工程与计算机科学专业介绍在这里哦!...
  16. RK987三模机械键盘win和alt键互换
  17. python中[:, 0]是什么意思
  18. 海思3559A pwm驱动编写记录
  19. 脑壳疼!到底该不该裸辞?
  20. msysgit + TortoiseGit安装

热门文章

  1. LeetCode 176 第二高的薪水
  2. 【解决】阿拉伯语等右向左排版文字CSS解决方案
  3. 电信诈骗瞄准“徐玉玉”们,扣问网络安全教育短板
  4. 卷积神经网络西储大学轴承故障诊断(基于时频变换)
  5. springAOP支持的通知类型
  6. VMWare共享windows文件夹到Ubuntu虚拟机
  7. 程序员陪女朋友自拍杆哪个好?自拍杆品牌推荐
  8. html表单按钮底部居中,Ant design StepsForm中如何使底部按钮居中
  9. SPSS中,进行两独立样本T检验
  10. 泰克示波器CVI开发|泰克示波器波形抓取数据控制软件NS-Scope