hdu多校1C题

题意:有n个物品,体积为v,价值为w,背包容量为m,求恰好能使背包装满的最大物品价值异或和

思路:

状态:f[i][j][k]表示前i个物品能否组成异或和为j,体积恰好为k

状态转移:f[i][j][k]=f[i-1][j^v[i]][k-w[i]]||f[i-1][j][k]

解释:不取第i个物品:f[i-1][j][k],取第i个物品:f[i-1][j^v[i]][j-w[i]]

时间复杂度:1024*1024*1024,必超时

优化:用bitset状压,那么可以批量处理k维

#include <cstdio>
#include <cstring>
#include<iostream>
#include <algorithm>
#include<cmath>
#include<bitset>
using namespace std;
const int N=1100,M=N*N;
bitset<1030> f[1030],g[1030]; //前i个物品,体积是k,异或和是j
int v[N],w[N];
signed main(){int t;cin>>t;while(t--){memset(f,0,sizeof f);int n,m;cin>>n>>m;for(int i=1;i<=n;i++)cin>>v[i]>>w[i];f[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<1024;j++)g[j]=f[j],g[j]<<=v[i];for(int j=0;j<=1024;j++)f[j]|=g[j^w[i]]; }int flag=1,ans=-1;for(int i=0;i<1024;i++){if(f[i][m]==1){ans=i;}}cout<<ans<<endl;}
}

2022hdu多校1C题题解相关推荐

  1. 2023年福建农林大学程序设计校赛个人题解(无D解析)

    2023年福建农林大学程序设计校赛个人题解(无D解析) A-这是一道原题 问题解析 从绿色材料合成到金色材料. 用 w h i l e while while 循环判断材料数是否能合成,能就合,合成后 ...

  2. 2021杭电多校补题——第一场

    2021杭电多校补题--第一场 文章目录 Mod, Or and Everything Rocket land(待补) Puzzle loop(待补) Another thief in a Shop( ...

  3. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  4. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  5. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  6. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  7. 两分数相乘后约分的Cantor表(洛谷P1482题题解,Java语言描述)

    题目要求 P1482题目链接 分析 据说本题是这题的升级版-- → P1014题题解 升级的地方其实就是相乘之后约分. 约分需要求解最大公约数,gcd()是吧-- 但我这里偏偏懒得写gcd,就想用Ja ...

  8. 带前导0的数字三角形(洛谷P5721题题解,Java语言描述)

    题目要求 P5721题题解 分析 注意补0呀 AC代码(Java语言描述) import java.util.Scanner;public class Main {public static void ...

  9. 用任意合法序列建立一棵二叉树(洛谷P1305题题解,Java语言描述)

    前言 这题是极其麻烦极其麻烦的一道题(前提是你不知道它有套路)-- 我们不讲那些歪门邪道,我们正儿八经的解一下,想正经求解,很麻烦很麻烦... 题目要求 P1305题题解 分析 这题你看着容易,那是你 ...

  10. xdu1068暨2013陕西省赛C题题解

    xdu1068暨2013陕西省赛C题题解 题意 知道两个数列M和F,每次从M中选择一个人,和从F中选择的一个人配对,结果是Mi*Fj,请问所有配对情况中第k大的情况是多少. 笺释 先对M和F从小到大排 ...

最新文章

  1. dos 下启动mysql时,报服务器找不到错误
  2. NetBeans 时事通讯(刊号 # 27 - Sep 24, 2008)
  3. 使用google云(GCP)二次利用安装kali Linux(kali browser)
  4. 用tableView实现的一种加载数据的布局
  5. mysql维护索引_高性能的MySQL(5)索引策略-索引和表的维护
  6. 2.3.NLTK工具包安装、分词、Text对象、停用词、过滤掉停用词、词性标注、分块、命名实体识别、数据清洗实例、参考文章
  7. 微信适配国产操作系统:原生支持 Linux
  8. android实现10ms定时器,Android三种实现定时器的方法
  9. 笔记本电脑报价单_抚顺x射线扫描仪设备,x-ray设备厂家报价单-老友网
  10. jquery核心的学习进程一
  11. docker tag 镜像id_手摸手带你 Docker 从入门到实践
  12. DM9000驱动之接受
  13. NLP系列之文本分类
  14. SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
  15. python破解百度网盘提取码_Python 一键获取百度网盘提取码
  16. 三极管放大电路基础知识
  17. 七夕祝福网页制作_七夕福利 | 程序员土味情话大PK,专属好礼等你拿
  18. MySQL基础(约束 多表查询)
  19. [收藏]31部黑客电影
  20. springboot基于web儿童教育网站111123

热门文章

  1. rank函数python_Python pandas.DataFrame.rank函数方法的使用
  2. Ubuntu 16.04 安装并创建快捷图标 XMind
  3. Linux软件安装管理的三种方式——源码安装/deb/rpm/yum/apt
  4. 可运行的最新的使用scrapy框架爬取链家租房数据
  5. 腾讯云认证考试考点列表有哪些?
  6. CycleGAN更换MNIST底色
  7. 神武3 服务器维护公告,《神武3》手游本周更新后的调整内容抢先知
  8. dubbo学习:2小时入手RPC框架Dubbo分布式服务调度(一)
  9. Fedora13装nividia驱动
  10. 安利一个简单实用的小技巧:图片怎么批量改尺寸