XTUOJ 15503 - C
15503 - C
Accepted: 6 Submissions: 27 Time Limit: 3000 ms Memory Limit: 1048576 KB
在解决了小女孩的谜题后,小女孩很大方的告诉了deemo她的名字:Alice。
从此deemo不再孤单一人了。他们每天快乐的生活在一起。deemo平时喜欢弹钢琴,Alice会静静的坐在他的身边,看deemo以前看过的书。
“deemo,你的书里的谜题都好难啊。”Alice歪着脑袋愁眉苦脸的看着书。
“想知道答案可以问我,我都解决了。”deemo的琴声欢快了起来。
“真的?这么厚的一本书?,那这题你知道答案吗?”
“嗯,因为在你来之前,我都是一个人。”
谜题:
n个人在玩一个关于蜡烛的游戏。这些人编号为1,2,…,n。一开始,第i个人有ai根蜡烛在手上。
这个游戏进行m轮。在每一轮,蜡烛最少的人可以获得x根蜡烛。如果有多于两个人有最少的蜡烛,则编号最小的人获得蜡烛。
编号为1的是他们的老大。所以他可以在游戏开始前从其他途径多获得y根蜡烛。现在他想知道他在m轮之后最多可以拥有多少根蜡烛。
Input
一个整数t,表示样例个数($t\leq 10$)。每组样例第一行有四个整数 $n,m,x,y (1\leq n,m\leq 200000,1\leq x,y\leq 10^9)$.第二行有n个整数 $a_1,a_2,…,a_n (1\leq a_i\leq 10^9)$.
Output
每组样例一个整数表示蜡烛的最大数量。
Input
1
2 1 2 2
1 2
Output
4
Source
XTU OnlineJudge
解题:假设不把$a_0$放进去,我们可以通过x和y使得a[0]等于剩余的某个数的现在的值,这样搞下去即可
#include <bits/stdc++.h>
using namespace std;
const int maxn = ;
typedef long long LL;
typedef pair<LL,int> PLI;
priority_queue<PLI,vector<PLI >,greater<PLI > >p,q;
int cnt[maxn],n,m,x,y;
LL a[maxn];
LL solve(int st,LL ret = ) {
while(!q.empty()) q.pop();
while(!p.empty()) p.pop();
memset(cnt,,sizeof cnt);
for(int i = ; i < n; ++i) {
q.push(PLI(a[i],i));
p.push(PLI(a[i],i));
}
p.push(PLI(a[] + st,));
ret = a[];
for(int i = ; i < m; ++i) {
PLI now = q.top();
q.pop();
if(now.first >= a[]){
LL k = ceil(double(now.first - a[] - y)/x);
if(i + max(k,0LL) + <= m && a[] + k*x <= now.first)
ret = max(ret,now.first + x);
}
now.first += x;
q.push(now);
}
ret = max(ret,a[] + st);
for(int i = ; i < m; ++i) {
PLI now = p.top();
now.first += x;
p.pop();
if(now.second == ) ret = max(ret,now.first);
p.push(now);
}
return ret;
}
int main() {
int kase;
scanf("%d",&kase);
while(kase--) {
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i = ; i < n; ++i) scanf("%I64d",a + i);
if(n == ) {
printf("%I64d\n",LL(m)*x + (a[] + y));
continue;
}
printf("%I64d\n",solve(y));
}
return ;
}
/*
1
5 4 8 4
1 5 5 7 8
*/
XTUOJ 15503 - C的更多相关文章
- XTUOJ 1248 TC or CF 搜索
这个题一眼看上去不会 然后有人说是网络流 然后我就想怎么建图啊,然后不会(是本蒟蒻太垃圾了),肯定有网络流解法 然后去群里问了gdut的巨巨,他说他队友爆搜+剪枝过了(我也是非常的叹服) 然后我也写了 ...
- XTUOJ 1246 Heartstone 贪心
题意:挺好懂得 分析:先计算出如果不能用(减2)操作,至少需要多少个(减3)操作,这个很好计算 然后就是尽量多的去减少(减3)操作,肯定先抹平 余2 和 余1 的,然后就可以了 #include &l ...
- XTUOJ 1252 Defense Tower 贪心
题目链接:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1252 思路:考虑每条边对玩家的伤害 假设连接的节点是u,v,破坏 ...
- 计蒜客 444 / xtuoj 1024 京东的物流路径(并查集+离线lca)或者 (点分治)
题意:一颗树,定义一条路径的权值等于路径的边权之和,需要求这颗树所有路径中权值的最大值 思路: 考虑到路径权值与点权的最值有关,而最值的问题通常可以通过排序就行处理,于是想到先把点权排序. 容易看出如 ...
- xtuoj 1233 coins(dp)
Coins Accepted : 120 Submit : 305 Time Limit : 1000 MS Memory Limit : 65536 KB Coins Problem Des ...
- xtuoj 1235 CQRXLB(博弈论)
CQRXLB Accepted : 19 Submit : 40 Time Limit : 1000 MS Memory Limit : 65536 KB CQRXLB Problem Des ...
- XTUOJ 1176 I Love Military Chess(模拟)
I Love Military Chess Accepted : 45 Submit : 141 Time Limit : 1000 MS Memory Limit : 65536 KB ...
- XTUOJ 1238 Segment Tree
Segment Tree Accepted : 3 Submit : 21Time Limit : 9000 MS Memory Limit : 65536 KB Problem Descriptio ...
- XTUOJ 1205 Range
Range Time Limit : 1000 MS Memory Limit : 65536 KB Problem Description For an array, the range funct ...
随机推荐
- 牛客国庆集训派对Day_7
A.Relic Discovery 题目描述 Recently, paleoanthropologists have found historical remains on an island in ...
- COPY, RETAIN, ASSIGN , READONLY , READWRITE,STRONG,WEAK,NONATOMIC整理--转
copy:建立一个索引计数为1的对象,然后释放旧对象 对NSString 对NSString 它指出,在赋值时使用传入值的一份拷贝.拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协 ...
- HDU 4565 So Easy! 数学 + 矩阵 + 整体思路化简
http://acm.hdu.edu.cn/showproblem.php?pid=4565 首先知道里面那个东西,是肯定有小数的,就是说小数部分是约不走的,(因为b限定了不是一个完全平方数). 因为 ...
- D. Black Hills golden jewels 二分答案 + 二分判定
http://codeforces.com/gym/101064/problem/D 题目是给定一个数组,如果两两组合,有C(n, 2)种结果,(找出第一个大于等于第k大的结果) 思路, 二分答案va ...
- sass+compass起步
前言:Sass is an extension of CSS that adds power and elegance to the basic language. It allows you to ...
- centos安装字体
cd /usr/local/fonts/zh_CN/TrueType/ cp /root/simsunb.ttf /usr/share/fonts/zh_CN/TrueType/ mkfontscal ...
- 汇编3栈帧,参数传递,串操作,混合汇编,x64,asm文件
基础知识2 选择结构 通过判断 + 条件跳转指令来实现 循环结构 通过判断 + 条件跳转指令来实现(会有一个向上跳转的语句) 函数调用约定 C调用约定: 由外部平衡栈 标准调用约定 : 由函数内部平衡 ...
- Perl monks 的 快速回复
on Jun 20, 2019 at 11:39 UTC ( #11101620=perlquestion: print w/replies, xml ) Need Help?? jimyokl ha ...
- 如何在windows 2008 IIS7 上实现AD域的访问控制
1.服务器加入域 2.创建点站 3.对站站进行设置 3.1设置网站的连接模式 选中站点,在控制台右侧 选择 基本设置 => 选择 应用程序用户 3.2 开启访问模式 选择站点 => 身份验 ...
- No-10.高级变量类型
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...