国王游戏

国王游戏

恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。
首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。
然后,让这 n 位大臣排成一排,国王站在队伍的最前面。
排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:
排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。
注意,国王的位置始终在队伍的最前面。

输入格式
第一行包含一个整数 n,表示大臣的人数。

第二行包含两个整数 a 和 b,之间用一个空格隔开,分别表示国王左手和右手上的整数。

接下来 n 行,每行包含两个整数 a 和 b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。

输出格式
输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。

数据范围
1≤n≤1000
0<a,b<10000
输入样例:
3
1 1
2 3
7 4
4 6
输出样例:
2

这是一道经典的贪心题目。
贪心思路就是valueL * valueR 最小的排在前面。
有一个难点就是大数的乘除法

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
typedef vector<int> VI;
const int N = 1e3 + 10;
int n;
struct each {int l, r;
}a[N];
bool cmp(each a, each b) {int tempa = a.l * a.r;int tempb = b.l * b.r;if(tempa == tempb)	return a.r < b.r;return tempa < tempb;
}
VI mult(VI r, int c) {VI re;int t = 0;for(int i = 0; i < r.size(); i++) {t += r[i] * c;re.push_back(t % 10);t /= 10;}while(t) {re.push_back(t % 10);t /= 10;}return re;
}
VI div(VI r, int c) {VI re;bool isfirst= false;int t = 0;for(int i = r.size() - 1; i >= 0; i--) {t = t * 10 + r[i];if(t / c || isfirst) {isfirst = true;re.push_back(t / c);}t %= c;}return VI(re.rbegin(), re.rend());
}
VI _max(VI x, VI y) {if(x.size() > y.size()) return x;if(y.size() > x.size()) return y;if(VI(x.rbegin(), x.rend()) > VI(y.rbegin(), y.rend())) return x;return y;
}
void print(VI f) {for(int i = f.size() - 1; i >= 0; i--)printf("%d", f[i]);puts("");
}
int main() {scanf("%d", &n);for(int i = 0; i <= n; i++) {getchar();scanf("%d %d", &a[i].l, &a[i].r);}sort(a + 1, a + n + 1, cmp);VI sum(1, 1);VI ans(1, 0);for(int i = 1; i <= n; i++) {sum = mult(sum, a[i - 1].l);ans = _max(ans, div(sum, a[i].r));}print(ans);return 0;	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wtm携手LayUI -- .netcore 开源生态我们是认真的!

经过WTM团队和LayUI团队多次深入协商&#xff0c;双方于2019年7月29日在北京中国国际展览中心正式达成战略合作意向&#xff0c;双方签署了战略合作框架协议&#xff0c;LayUI团队承诺使用WTM框架的任何项目都可以免费使用其收费版的后台模板&#xff0c;WTM团队则从受捐助款项…

Codeforces Round #305 (Div. 1) D. Mike and Fish 欧拉回路

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 欧拉回路经典题。 将其转换成图上问题&#xff0c;对于横纵坐标我们将其分开&#xff0c;对于(x,y)(x,y)(x,y)我们将其横纵坐标连一个无向边&#xff0c;现在问题就转换成了我们需要对每条…

经典二分:秦腾与教学评估

秦腾与教学评估 题面描述 在秦腾进入北京大学学习的第一个学期&#xff0c;就不幸遇到了前所未有的教学评估。在教学评估期间&#xff0c;同学们被要求八点起床&#xff0c;十一点回宿舍睡觉&#xff0c;不准旷课&#xff0c;上课不准迟到&#xff0c;上课不准睡觉……甚至连著…

高性能动态编译库Natasha发布1.0版本!

一、 前言对于开源贡献者&#xff0c;Emit和表达式树不是陌生的字眼&#xff0c;IL的动态特性为封装工作带来了极大的方便&#xff0c;会Emit的开发者可以说驾驭了大部分的高性能、高动态的编程技巧。纵观ef、dapper、json.net等第三方常用库&#xff0c;哪个能脱离emit而独善其…

Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 考虑对于线段&#xff0c;如何建模。 我们考虑先将线段转换成左闭右开的形式&#xff0c;将左右点连起来。 再考虑每个点&#xff0c;将所有离散化后的点拿出来&#xff0c;每个点都有一个…

最大子序和:单调队列维护一个上升序列

最大子序和 输入一个长度为n的整数序列&#xff0c;从中找出一段长度不超过m的连续子序列&#xff0c;使得子序列中所有数的和最大。 注意&#xff1a; 子序列的长度至少是1。 输入格式 第一行输入两个整数n,m。 第二行输入n个数&#xff0c;代表长度为n的整数序列。 同一行…

微软.Net Core 3.0 预览版7发布:大幅减少 SDK 空间大小

据悉&#xff0c;这个预览版是 .Net Core 3 中重要的版本&#xff0c;可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话&#xff09;&#xff0c;故可在生产环境进行开发和部署。Windows, macOS 和 Linux 版本的Download .NET …

2016-2017 Central Europe Regional Contest Hangar Hurdles 克鲁斯卡尔重构树 + 建图

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 有一个n∗nn*nn∗n的网格图&#xff0c;有若干位置有障碍&#xff0c;有qqq个询问&#xff0c;每次询问给出两个点坐标x1,y1,x2,y2x1,y1,x2,y2x1,y1,x2,y2,询问把一个正方形箱子从x1,x2x1,x2x1,x2推到y1,y2y…

5门可能衰落的编程语言

专注于为北美地区的科技专业人士提供行业见解和分析&#xff0c;以及提供求职消息的技术职业消息服务网站 Dice Insights 近日发表了一篇题为《5 Programming Languages That Are Probably Doomed》的文章。作者主要根据 TIOBE 和 RedMonk 这两个编程语言排行榜&#xff0c;以及…

POJ3320 Jessica's Reading Problem 尺取法

Jessica’s Reading Problem、 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22716 Accepted: 7687 Description Jessica’s a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is coming, yet she has spent little …

#2686. 「BalticOI 2013」雪地足迹 双端队列01bfs + 模型转换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个n∗mn*mn∗m的图&#xff0c;如果某个位置字符为RRR代表兔子走过&#xff0c;如果为FFF代表狐狸走过&#xff0c;如果...代表谁都没走过&#xff0c;每只动物必须从左上角进来&#xff0c;右下角出去…

.NET加水印/验证码的NuGet包

.NET加水印/验证码的NuGet包 我的在前两篇文章中&#xff0c;我介绍了使用Direct2D给图片加水印/验证码&#xff0c;今天我将其进行了封装&#xff0c;发布了一个NuGet包Sdcb.Imaging&#xff1a;<PackageReference Include"Sdcb.Imaging" Version"1.1.0&quo…

hdu1686:KMP板子

题目链接 题目大意就是给你两个字符串&#xff0c;求出第一个字符串在第二个字符串中出现的次数。 如果我们暴力匹配的话&#xff0c;复杂度是 len(first) * len(second) 对于题目给的 1e4 * 1e6 显然暴力不可取&#xff0c; 这里就用到 KMP 。 说到 KMP 最难理解的就是 next…

集群故障处理之处理思路以及健康状态检查(三十三)

前言 按照笔者的教程&#xff0c;大家应该都能够比较顺畅的完成k8s集群的部署&#xff0c;不过由于环境、配置以及对Linux、k8s的不了解会导致很多问题、异常和故障&#xff0c;这里笔者分享一些处理技巧和思路&#xff0c;以及部分常见的问题&#xff0c;以供大…

Educational Codeforces Round 32 G. Xor-MST 01tire + 分治 + Boruvka

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn序列aaa&#xff0c;每两个点之间的边权为ai⊕aja_i\oplus a_jai​⊕aj​&#xff0c;问你最小生成树的权值是多少。 n≤2e5,ai<230n\le2e5,a_i< 2^{30}n≤2e5,ai​<230 思路&am…

Trie初步

简单的描述就是一个字典树&#xff0c; 我们用下图来简单描述一下。 上述的字典树代表着 ab abc abk cd ca b 这六个单词&#xff0c;我们不难发现其中标记是红色的代表从一个伪根节点到这是一个完整的单词。不同的单词有重复的部分&#xff0c;例如accepted&#xff0c;accep…

XXI Open Cup. Grand Prix of Korea I. Query On A Tree 17 树剖 + 二分 + 树带权重心

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一棵树&#xff0c;每棵树初始权值都为000&#xff0c;现在给你两个操作&#xff1a; (1)(1)(1)将uuu的子树权值全部加111。 (2)(2)(2)将(u,v)(u,v)(u,v)路径上的点权值都加111。 每次输出一个点xxx,满…

使用Kubeadm创建k8s集群之节点部署(三十二)

前言 由于上次忘开申明原创&#xff0c;特再发一次。本篇部署教程将讲述k8s集群的节点&#xff08;master和工作节点&#xff09;部署&#xff0c;请先按照上一篇教程完成节点的准备。本篇教程中的操作全部使用脚本完成&#xff0c;并且对于某些情况&#xff08;比如镜…

Trie:hdu 4825、1251、1247、Poj 3764

hdu 4825链接 题目意思很简单&#xff0c;就是要求最大异或值的数。 我们可以从二进制的最高位开始选择&#xff0c;不断的排除一些数。我们先假设存在某些数字的二进制数是与当前查找的数不一样的&#xff0c;我们进入这一部分数进行查找&#xff0c;以此重复&#xff0c;不断…

Codeforces Round #675 (Div. 2) F. Boring Queries 区间lcm + 主席树

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn的序列aaa&#xff0c;qqq个询问&#xff0c;每次询问[l,r][l,r][l,r]内的lcmlcmlcm是多少&#xff0c;对1e971e971e97取模。 n≤1e5,a≤2e5,q≤1e5n\le1e5,a\le2e5,q\le1e5n≤1e5,a≤2e5,…