luogu P2430 严酷的训练 题解】的更多相关文章

By:Soroak 知识点:DP 思路:就是一道简单的DP 一开始我想用二维数组做 做着做着发现,没有那么难啊啊啊 完全可以用一维数组来做 我们先开两个一维数组来存每个题目的时间 一个是老王的时间,另一个是wky的时间, (其实完全可以用一个一位数组写的..) 再开一个结构体,来存每一个题目的知识点种类和做出该题目的价值 然后双重循环,第一层从1到m,枚举所有的题目 第二层从tim到num[timu[i].kind],表示从tim时间开始,枚举到当前题目要花费的时间为止 Q:那为什么不直接枚举到…
题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会一口气让WKY做很多道题, 要求他在规定的时间完成. 而老王为了让自己的威信提高,自己也会把这些题都做一遍. WKY和老王都有一个水平值,他们水平值的比值和做这些题 所用时间的比值成反比.比如如果WKY的水平值是1,老王的水平值是2 那么WKY做同一道题的时间就是老王的2倍. 每个题目有他所属的知识点,这我们都知道, 比如…
P2430 严酷的训练 题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会一口气让WKY做很多道题, 要求他在规定的时间完成. 而老王为了让自己的威信提高,自己也会把这些题都做一遍. WKY和老王都有一个水平值,他们水平值的比值和做这些题 所用时间的比值成反比.比如如果WKY的水平值是1,老王的水平值是2 那么WKY做同一道题的时间就是老王的2倍. 每个题目有他所属的知识…
题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会一口气让WKY做很多道题, 要求他在规定的时间完成. 而老王为了让自己的威信提高,自己也会把这些题都做一遍. WKY和老王都有一个水平值,他们水平值的比值和做这些题 所用时间的比值成反比.比如如果WKY的水平值是1,老王的水平值是2 那么WKY做同一道题的时间就是老王的2倍. 每个题目有他所属的知识点,这我们都知道, 比如…
传送 这个题的题干很长,长到令人恶心 这个题的p乍一看好像没有卵用,但其实他很有用(废话).这里的“费用”不再是tw[i](wky做第i道题的时间),而是tw[p[i]](wky做第i道题所对应的知识点的时间),跳过这个坑后就套用经典的01背包代码就行了 代码如下: #include<iostream> #include<cstdio> #include<cmath> using namespace std; ],spw,splw,m,n,f[],tl[],p[],q[…
第一眼看这道题...啊哈,啥??? 仔细看一看,发现:诶, 这不是01背包吗? 两人水平值的比值*老王做题用时 可以算出WKY做每道题的用时. 那么每道题的p就可以转换成费用c[i], 价值q就是w[i] 这么一来, 这道题就转化成了在一定大小的背包内(即规定时间内)可以装下的最大价值的物品, 这样, 就是一道01背包的问题了. Code #include <iostream> #include <cstdio> #include <cstring> using nam…
(这个题有一个很神奇的地方) 严酷的训练[传送门] 算法标签(显然01背包了最近一直在练) (他居然没写……) 这个题啊,试了好几遍没a 最后发现在第二层循环的时候应该是j>=rqyt[p[i]]而不是j>=rqyt[i](因为时间t要大于的是做这个题所需要的时间)(在下面循环想到上面没想到) ac代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring&g…
严酷的训练 思路: 背包: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 5005 int n,m,bi[maxn],k,k1,k2,dp[maxn],ci[maxn],vi[maxn]; inline void in(int &now) { ; ')Cget=getchar(); ') { now=now*+Cget-'; Cget=getchar(); } } int main() { in(k1),i…
luogu P1126 机器人搬重物 题解 题目描述 机器人移动学会(\(RMI\))现在正尝试用机器人搬运物品.机器人的形状是一个直径\(1.6\)米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个\(N×M\)的网格,有些格子为不可移动的障碍.机器人的中心总是在格点上,当然,机器人必须在最短的时间内把物品搬运到指定的地方.机器人接受的指令有:向前移动\(1\)步(\(Creep\)):向前移动\(2\)步(\(Walk\)):向前移动\(3\)步(\(Run\)):向左转(…
题目链接:https://www.luogu.org/problemnew/show/P2491 题外话: OI一共只有三种题--会的题,不会的题,二分题. 题解: step 1 求树的直径,把树的直径上的路径边权都置为0,这样了再求一次其他点最短路. step 2 在树的直径上二分,具体方法是把树的直径长度用类似前缀和的思想处理后,二分左右端点舍去的距离. #include <queue> #include <cstdio> #include <cstring> #i…