T293037 [传智杯 #5 练习赛] 白色旅人
创始人
2024-02-07 15:04:22

题目描述

有一个物品队列 \frak BB,初始时为空。现在共有三种操作。每个操作会给定三个整数 \mathrm{op},x,yop,x,y,其中 \mathrm{op}op 表示操作种类,x,yx,y 是操作的参数。操作分为如下三种:

  • 11:向 \frak BB 尾部添加一个物品,它的体积为 xx,价值为 yy。
  • 22:把 \frak BB 尾部最后物品移除。保证此时最少有一个物品。
  • 33:有一个体积为 xx 的背包。用 \frak BB 内的物品填充它,每个物品最多用一次,询问最多能获得多大的价值。提示:当 \frak BB 为空时,相当于没有物品可用,答案就是 00。

对于操作 22 和 33,请忽略多余的参数。

本题强制在线。强制在线的方式请见输入格式。

输入格式

  • 第一行有两个正整数 n,m_{\max}n,mmax​,表示操作个数以及操作 33 提到的背包的体积的最大值。
  • 接下来 nn 行,每行给定三个整数 \mathrm{op},x',y'op,x′,y′。将 x',y'x′,y′ 分别异或上 \mathrm{lastans}lastans 得到该次询问真正的 x,yx,y。其中,\mathrm{lastans}lastans 是上一次操作 33 询问的结果。在第一次操作 33 前,\mathrm{lastans}=0lastans=0。

输出格式

  • 输出有若干行,表示每次 33 操作的结果。

输入输出样例

输入 #1复制

10 10
1 3 4
1 5 5
3 4 1
3 12 5
1 14 3
3 1 8
2 11 11
3 2 11
2 8 8
3 12 8

输出 #1复制

4
9
10
9
4

说明/提示

样例解释

解码后的输入数据为:

10 10
1 3 4
1 5 5
3 4 1
3 8 1
1 7 10
3 8 1
2 1 1
3 8 1
2 1 1
3 5 1

对于十次操作,物品序列的情况如下;

  • 加入体积为 33,价值为 44 的物品。物品序列为 \{(3,4)\}{(3,4)}。
  • 加入体积为 55,价值为 55 的物品。物品序列为 \{(3,4),(5,5)\}{(3,4),(5,5)}。
  • 查询体积为 44 的背包能装下的物品价值最大值。此时只能装第一个物品,于是答案为 44。
  • 查询体积为 88 的背包能装下的物品价值最大值。此时可把两个物品都装下,答案为 99。
  • 加入体积为 77,价值为 1010 的物品。物品序列为 \{(3,4),(5,5),(7,10)\}{(3,4),(5,5),(7,10)}。
  • 查询体积为 88 的背包能装下的物品价值最大值。此时直接装第三个物品获得的价值大于装下另外两个,于是答案为 1010。
  • 删除最后一个物品。此时物品序列为 \{(3,4),(5,5)\}{(3,4),(5,5)}。
  • 查询体积为 88 的背包能装下的物品价值最大值。此时可把两个物品都装下,答案为 99。
  • 删除最后一个物品。此时物品序列为 \{(3,4)\}{(3,4)}。
  • 查询体积为 55 的背包能装下的物品价值最大值。此时只有一个物品可装,答案为 44。

数据范围及约定

对于全部数据,1\le n\le 3\times 10^41≤n≤3×104,1\le m_{\max}\le 2\times 10^41≤mmax​≤2×104,1\le x, y\le 2\times 10^41≤x,y≤2×104。

首先来个内存不通过的代码:使用暴力dfs


import java.util.*;import java.util.Scanner;public class Main {public static Integer n;public static Integer max;public static Integer x[];public static Integer y[];public static Integer op[];public static Integer zt[];public static Integer num = 0;public static Integer lastans = 0;public static List listx = new ArrayList<>();public static List listy = new ArrayList<>();public static void main(String[] args) {Scanner sca = new Scanner(System.in);n = sca.nextInt();max = sca.nextInt();x = new Integer[n];y = new Integer[n];op = new Integer[n];zt = new Integer[n];for(int i = 0;i1) {listx.remove(listx.size()-1);listy.remove(listy.size()-1);}}else if (op[i]==3) {
//				搜寻最大的价值dfs(x[i],0);System.out.println(num);lastans = num;num = 0;
//				System.out.println(maxs);}//			System.out.println(x[i]+","+y[i]+" :"+listx+" "+listy);}}
//	剩余当前背包mx 4 当前背包内价值my 第几个物品的索引index public static int dfs(Integer mx,Integer my) {if(listx.size()==0) {return 0;}for(int i = 0;i=listx.get(i)) {//这个包是否能装下该物品mx = mx-listx.get(i);//剩余容量my = my+listy.get(i);//当前价值if(my>num) {//存储最大的有效价值num = my;}zt[i]=1;
//					进行下一个搜索dfs(mx, my);mx = mx+listx.get(i);//剩余容量my = my-listy.get(i);//当前价值zt[i]=0;}else {zt[i] = 1;
//					进行下一个搜索dfs(mx, my);zt[i] = 0;}}}return 0;}}

对代码进行优化 ,不会了...

 


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;import java.util.*;public class Main {public static List listx = new ArrayList<>(),listy = new ArrayList<>();//存放大小 价值public static int dp[][],dp1[],dp2[],m;public static void main(String[] args)  throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));int lastans = 0;String s = reader.readLine();int n = Integer.parseInt(s.split(" ")[0]);//一共几行int max = Integer.parseInt(s.split(" ")[1]);//背包体积最大值int ma = 0;dp1 = new int[max+1];dp2 = new int[max+1];for(int i=0;i=x;j--) {dp1[j] = Math.max(dp1[j], dp1[j-x]+y);}}else if(op==2){for(int j = max;j>=x;j--) {dp1[j] = Math.min(dp1[j], dp1[j-x]-y);}}}}}

 

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...