一、题目链接

https://nanti.jisuanke.com/t/31720

二、题意

给$N$种船只,第$i$种船的载重量是$V_i$,数量是$2^{C_i}-1$。接下来有$Q$次询问,每次给定一个数字$S(1 \le S \le 10000)$,表示货物重量,回答有多少种载货方案。注意,每条船要么不载货,要么满载。

三、思路

比较裸的多重背包。如果写最朴素的多重背包$dp$,时间复杂度是$O(N*10000*2^{C_i})$,显然会超时。

所以,考虑二进制优化。做法是,设$C_i$的二进制表示为$s$,如果$s[i]=1$($i$从$0$开始数,从右边开始),那么,把这$2^i$条船合并成一条,载货量是$2^i*V_i$。

然后就是01背包计数了。

四、代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
;
], n, q, ncnt;
LL dp[][];
int main() {
    int T, x, y;
    for(scanf("%d", &T); T--;) {
        ncnt = ;
        scanf("%d%d", &n, &q);
        ; i <= n; ++i) {
            scanf("%d%d", &x, &y);
            y = ( << y) - ;
            ; i <= y; i <<= ) {
                v[++ncnt] = i * x;
            }
        }
        ; i <= ncnt; ++i) {
            ; j <= ; ++j)dp[i][j] = ;
        }
        dp[][] = ;
        ; i <= ncnt; ++i) {
            ; j <= ; ++j) {
                dp[i][j] = dp[i - ][j];
                ][j - v[i]]) % mod;
            }
        }
        while(q--) {
            scanf("%d", &x);
            printf("%lld\n", dp[ncnt][x]);
        }
    }
    ;
}

2018ICPC网络赛(焦作站)K题题解的更多相关文章

  1. 2018ICPC网络赛(焦作站)E题题解

    一.题目链接 二.题意 给定一棵树,有四种操作: $1\ u\ v\ x$:把节点$u$到$v$路径上的所有点的权值乘以$x$: $2\ u\ v\ x$:把节点$u$到$v$路径上的所有点的权值加上 ...

  2. 2018ICPC网络赛(徐州站)A题题解

    一.题目链接 https://nanti.jisuanke.com/t/31453 二.题意 给定$N$个位置,$2^k$种颜色,让你去涂色,条件是相邻的两种颜色类型异或值的二进制表示不全为$1$(以 ...

  3. 2013 ACM-ICPC亚洲区域赛南京站C题 题解 轮廓线DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804 题目大意 给你一个 \(n \times m\) 的矩形区域.你需要用 \(1 \times 1 ...

  4. Known Notation 39届亚洲赛牡丹江站K题

    题意:       题意,哎!说道题意就蛋疼啊,比赛的时候就愣是把这个题目读成数字可以随意组合,比如123 可以拆成1 23 ,12 3 ,1 2 3,结果显然,水题当神题,各种想不出来,然后就显然的 ...

  5. 2019CCPC网络预选赛 八道签到题题解

    目录 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 6702 & 6703 array 6704 K-th occurrence 6705 path 6706 huntian o ...

  6. HDU 4730 We Love MOE Girls (2013成都网络赛,签到水题)

    We Love MOE Girls Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. Building Fire Stations 39届亚洲赛牡丹江站B题

    题意:      给你一棵树,让你再里面选取两个点作为**点,然后所有点的权值是到这两个点中最近的那个的距离,最后问距离中最长的最短是多少,输出距离还有那两个点(spj特判). 思路:      现场 ...

  8. 2016 ICPC青岛站---k题 Finding Hotels(K-D树)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5992 Problem Description There are N hotels all over ...

  9. SCNU省选校赛第二场B题题解

    今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...

随机推荐

  1. jsf的运行原理及生命周期

    一.jsf(java server faces)的运行原理(工作方式) 1.jsf应用是事件驱动的,当一个事件发生时(比如用户单击一个按钮),事件通知通过HTTP发往服务器,服务器端使用叫做Faces ...

  2. firefor打不开问题

    解决办法如下,点击开始→运行→输入命令 firefox.exe -p -no-remote ,win7系统用户好像开始下没有运行栏,同时按键盘win+R键即可打开运行窗口,然后点击创建配置文件,创建一 ...

  3. Okhttp对http2的支持简单分析

    在< Okhttp之RealConnection建立链接简单分析>一文中简单的分析了RealConnection的connect方法的作用:打开一个TCP链接或者打开一个隧道链接,在打开t ...

  4. pandas DataFrame 索引(iloc 与 loc 的区别)

    Pandas--ix vs loc vs iloc区别 0. DataFrame DataFrame 的构造主要依赖如下三个参数: data:表格数据: index:行索引: columns:列名: ...

  5. calculate MAC,Lisence,Checksum and generate muti-file

    /************************************************************************* * calculate MAC,Lisence,C ...

  6. [LeetCode&Python] Problem 868. Binary Gap

    Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...

  7. windows7所有版本迅雷地址下载集合(含32位和64位) - imsoft.cnblogs

    Windows7 SP1旗舰版 32位官方原版下载: ed2k://|file|/cn_windows_7_ultimate_with_sp1_x86_dvd_618763.iso|265187737 ...

  8. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  9. MySQL--区分表名大小写

    ============================================================================ 在MySQL中,可以通过lower_case_ ...

  10. Kettle入门教程

    最近做的项目用到了ETL工具Kettle,这个工具相当好用,可以将各种类型数据作为数据流,经过处理后再生成各种类型的数据.正如其名“水壶”,将各个地方的水倒进水壶里,再用水壶倒入不同的容器.不过一来初 ...