首页 > TAG信息列表 > P1314
Part2.3 P1314 聪明的质检员 【二分答案、前缀和优化】
原题链接:P1314 [NOIP2011 提高组] 聪明的质监员 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意:给出定义 y (由数组区间中大于参数 W 的数量和其对应的价值决定 )以及已知标准 s 的输入,计算多个区间内的 y 的总和与标准 s 相比较,求出最小差值时的标准参数 W 思路:首先是标准的二Luogu P1314 [NOIP2011 提高组] 聪明的质监员
P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 \(w\) 质检员每次会抽取\(m\)个区间,每次的抽检结果为 \(y = \sum_{l_i}^{r_i} (w_i \ge w) · \sum_{l_i}^{r_i} v_i\) 求洛谷P1314 聪明的质监员 题解
题目 聪明的质监员 题解 这道题和之前Sabotage G的那道题类似,都是用二分答案求解(这道题还要简单一些,不需要用数学推导二分条件,只需简单判断一下即可)。 同时为了降低复杂度,肯定不能用暴力求解 \(y_{i}\) 的值,很明显这里用到前缀和,到时候计算 \(y_{i}\) 只需用两个前缀和相减一下,再【LG P1314】聪明的质监员
这个题很明显的二分枚举,但是还有一个前缀和有点坑人。 这题题其实点不多,就两个关键点。 二分的判断 可以看到:在W取0时,所有的区间内的矿石都可以选上,而在W大于最大的质量时,所有的矿石都选不上。 然后简单算一下就发现:W越大,矿石选的越少,W越小,矿石选的越多。 所以,随着W增大,Y值减小。luogu_P1314 聪明的质监员
传送门:https://www.luogu.org/problem/P1314 本SB犯得错误: 不开longlong见祖宗...... 既没有在check中更新答案,又没有最后输出判断ans(l);和ans(l+1)哪个是更优的 二分参数W,然后前缀和一下,逐个计算检验值Y。 不开longlong见祖宗 不开longlong见祖宗 不开longlong见祖宗 #inclP1314-聪明的质检员
1 #include <bits/stdc++.h> 2 using namespace std; 3 #define _for(i,a,b) for(int i = (a);i < b;i ++) 4 #define _rep(i,a,b) for(int i = (a);i > b;i --) 5 #define INF 0x3f3f3f3f3f3f3f3f 6 #define pb push_back 7 #define maxn 2005390 8 typedef lon[NOIp2011] luogu P1314 聪明的质监员
题目描述 点进去看吧,说的不能再清楚了。 Solution 看到数据规模不难想到二分 WWW,然后用个前缀和优化一下即可。注意上下界。 #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define int long long const int MAXN=2000题解 P1314 【聪明的质监员】
题目链接 这种质监员迟早要下岗,而且这题数据真的水,试了两个错误做法都给放过去了…… Solution [NOIP2011]聪明的质监员 题目大意:给定\(n\)个矿石,每个矿石有重量\(w\)和价值\(v\),给定\(m\)个区间\([L_i,R_i]\),定义一个区间的贡献\(Y_i = \sum_j1\times\sum_j v_j \quad j \in