传送门:(涉及版权忽略)

【题解】

我们发现n的范围很小,提示我们可以折半,然后我们就会了O(T2^(n/2)*n)的做法,然而会T。

考虑如何优化。直接排序会多一个log(2^(n/2))也就是n,那么改成每次加一个数,归并即可。这样复杂度是对的

T(n) = T(n-1) + 2^n  ==> T(n) = O(2^n)

那么复杂度就是O(T2^(n/2))

# include <stdio.h>
# include <string.h>
# include <algorithm>
// # include <bits/stdc++.h> using namespace std; typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int M = + , N = ;
const int mod = 1e9+; # define FO_OPEN
# define RG register
# define ST static int n, m, a[M];
int c[][N], cn[];
int t[N]; inline void merge(int pos, int l, int mid, int r) {
int i = l, j = mid+, k = l-;
while(i<=mid && j<=r) {
if(c[pos][i] < c[pos][j]) t[++k] = c[pos][i++];
else t[++k] = c[pos][j++];
}
while(i<=mid) t[++k] = c[pos][i++];
while(j<=r) t[++k] = c[pos][j++];
for (int o=l; o<=r; ++o) c[pos][o] = t[o];
} inline void sol() {
int sum = ;
scanf("%d%d", &n, &m);
for (int i=; i<=n; ++i) scanf("%d", &a[i]), sum = sum + a[i];
if(sum < m) {
puts("-1");
return ;
}
int res = n/;
c[][cn[] = ] = ;
for (int i=; i<=res; ++i) {
for (int j=; j<=cn[]; ++j) c[][j+cn[]] = c[][j] + a[i];
merge(, , cn[], cn[] << );
cn[] <<= ;
}
// printf("cn[0] = %d\n", cn[0]);
// for (int i=1; i<=cn[0]; ++i) printf("%d ", c[0][i]);
// puts("\n====================");
c[][cn[] = ] = ;
for (int i=res+; i<=n; ++i) {
for (int j=; j<=cn[]; ++j) c[][j+cn[]] = c[][j] + a[i];
merge(, , cn[], cn[] << );
cn[] <<= ;
}
// printf("cn[1] = %d\n", cn[1]);
// for (int i=1; i<=cn[1]; ++i) printf("%d ", c[1][i]);
// puts("");
int p0 = , p1 = cn[], ans = ;
for (; p0 <= cn[]; p0 ++) {
while(p1 && c[][p0] + c[][p1] >= m) --p1;
if(p1 != cn[])
ans = min(ans, c[][p0] + c[][p1 + ]);
}
printf("%d\n", ans);
} int main() {
FO_OPEN ? freopen("challenge.in", "r", stdin), freopen("challenge.out", "w", stdout) : ;
int T; scanf("%d", &T);
while(T--) sol();
return ;
}

szoj461【四校联考0430】挑战的更多相关文章

  1. [2017/5/28]FJ四校联考

    来自FallDream的博客,未经允许,请勿转载,谢谢. 话说这一段时间算是过去了,好久好久之后终于又有联考了  没想到这次到我们学校出题,昨天才想起来,临时花一天赶了一套,我出了一个sbFFT,质量 ...

  2. [四校联考P3] 区间颜色众数 (主席树)

    主席树 Description 给定一个长度为 N 颜色序列A,有M个询问:每次询问一个区间里是否有一种颜色的数量超过了区间的一半,并指出是哪种颜色. Input 输入文件第一行有两个整数:N和C 输 ...

  3. 四校联考 tree3

    我们考虑计算红色点与非红色点的对数. 我们用f[i][j]表示i的子树中有j个红色点的概率,将i所有子树合并. 接着我们对于每一个状态,枚举i是红色还是非红色算概率. 同时我们可以求出i和i子树内一个 ...

  4. [3.19FJ四校联考]

    来自FallDream的博客.未经允许,请勿转载,谢谢. ---------------------------------------------------- A.积分,不会  以后补 B.给定一 ...

  5. 【四校联考】【比赛题解】FJ NOIP 四校联考 2017 Round 7

    此次比赛为厦门一中出题.都是聚劳,不敢恭维. 莫名爆了个0,究其原因,竟然是快读炸了……很狗,很难受. 话不多说,来看看题: [T1] 题意: 样例: PS:1<=h[i]<=100000 ...

  6. 三校联考 Day3

    三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...

  7. 【赛时总结】NOIP2018-三校联考1024

    ◇NOIP三校联考-1024◇ 发现以前的博客写得似乎都很水……基本上都没什么阅读量QwQ 决定改过自新╰( ̄ω ̄o) 就从这篇博客开始吧~ 现场考得无地自容,看到题解才发现一些东西……(我第三题还没 ...

  8. [2019多校联考(Round 6 T3)]脱单计划 (费用流)

    [2019多校联考(Round 6 T3)]脱单计划 (费用流) 题面 你是一家相亲机构的策划总监,在一次相亲活动中,有 n 个小区的若干男士和 n个小区的若干女士报名了这次活动,你需要将这些参与者两 ...

  9. [多校联考2019(Round 5 T1)] [ATCoder3912]Xor Tree(状压dp)

    [多校联考2019(Round 5)] [ATCoder3912]Xor Tree(状压dp) 题面 给出一棵n个点的树,每条边有边权v,每次操作选中两个点,将这两个点之间的路径上的边权全部异或某个值 ...

随机推荐

  1. TFS权限配置

            装了TFS,要给TFS里添加用户,然后分配权限.其实一般项目中权限都不会控制的那么细,所以就直接想给项目组的每个人建一个用户,让他们都能访问这个项目的代码并进行任何操作.只想怎么简单怎 ...

  2. Java与C++进行系统间交互:Protocol Buffer

    在一次项目中,因笔者负责的java端应用需要与公司C++系统进行交互,公司选定Protocol Buffer方案,故简单的了解一下 有需要的可以看一下其他作者的文章,了解一下Protobuf: htt ...

  3. 在测试时用到的一些mysql的小技巧(持续更新)

    经常使用的快捷键: 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r ...

  4. LuffyCity-CMDB实战

    第1章 章节一 课时01-ITIL介绍 课时02-CMDB介绍 课时03-CMDB需求讨论 课时04-CMDB需求讨论2 课时05-CMDB表结构设计 课时06-CMDB表结构设计2 课时07-CMD ...

  5. 用jsp实现省市区三级联动下拉

    jsp+jquery实现省市区三级联动下拉 不少系统都需要实现省市区三级联动下拉,像人口信息管理.电子商务网站.会员管理等,都需要填写地址相关信息.而用ajax实现的无刷新省市区三级联动下拉则可以改善 ...

  6. cocos2d-x 动作类

    动作类是Action IntervalAction是间隔动作,InstantAction是瞬时动作. 动作的管理是要由节点负责的,任何的节点都可以管理节点,如精灵.菜单.层.甚至场景都可以管理动作.节 ...

  7. 【page.json】配置说明

    页面.json用来对本页面的窗口表现进行配置.它只能针对window配置,并且会覆盖 app.json 的 window 中相同的配置项. { /** * 以下是页面顶部导航栏设置 **/ " ...

  8. Spark实战练习01--XML数据处理

    一.要求 将XML中的account_number.model数据提取出来,并以account_number:model格式存储 1.XML文件数据格式 <activations> < ...

  9. SPOJ 1812 Longest Common Substring II(后缀自动机)(LCS2)

    A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the s ...

  10. QQ互联登陆的最简洁代码

    <?php/** * http://wiki.open.qq.com/wiki/ * Date: 14-6-18 * Time: 下午18:04 */class Model_Login_QqCo ...