[贪心]D. 【例题4】国王游戏
D
.
【
例
题
4
】
国
王
游
戏
D. 【例题4】国王游戏
D.【例题4】国王游戏


解析
贪心思想,考虑交换后的值比交换前的小.
然后数据规模用高精度
Code
#include <bits/stdc++.h>
using namespace std;
int n, et[10005], ans[10005], ex[10005], aer,aet,ert;
struct node
{
int l, r, lr;
}a[10005];
bool cmp(node x,node y)
{
return x.lr < y.lr ? 1 : 0;
}
void qer(int x)
{
for (int i = 1; i <= aet; ++ i) et[i] *= x;
for (int i = 1; i <= aet; ++ i)
{
et[i + 1] += et[i] / 10;
et[i] %= 10;
if (i == aet && et[i + 1] != 0) ++ aet;
}
}
void tue(int x)
{
memset (ex, 0, sizeof (ex));
ert = 0;
int val = 0;
for (int i = aet; i > 0; -- i)
{
val = val * 10 + et[i];
ex[i] = val / x;
if (ert == 0 && ex[i] != 0) ert = i;
val%=x;
}
for (int i = 1; i <= ert; ++ i)
{
ex[i + 1] += ex[i] / 10;
ex[i] %= 10;
if (i == ert && ex[i + 1] != 0) ++ ert;
}
}
bool check()
{
if (aer < ert) return 1;
if (ert < aer) return 0;
for (int i = aer; i > 0; -- i)
{
if (ex[i] > ans[i]) return 1;
if (ex[i] < ans[i]) return 0;
}
return 0;
}
void swp()
{
for (int i = 1; i <= ert; ++ i) ans[i] = ex[i];
aer = ert;
}
int main()
{
scanf("%d",&n);
aet = et[1] = 1;
for (int i = 0; i <= n; ++ i)
{
scanf ("%d%d", &a[i].l, &a[i].r);
a[i].lr = a[i].l * a[i].r;
}
sort (a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; ++ i)
{
qer (a[i - 1].l);
tue (a[i].r);
if (check ()) swp ();
}
for (int i = aer; i > 0; -- i) printf ("%d", ans[i]);
return 0;
}
[贪心]D. 【例题4】国王游戏的更多相关文章
- [贪心][高精]P1080 国王游戏(整合)
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...
- Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)
Luogu 1080 [NOIP2012]国王游戏 (贪心,高精度) Description 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己 ...
- Luogu P1080国王游戏(贪心)
国王游戏 题目链接:国王游戏 ps:题目数据说明了要写高精度. 这个题的答案是\(a.l * a.r < b.l * b.r\)按照这个进行排序 题解中大部分只是如何证明排序是: \(a.l * ...
- 国王游戏 2012年NOIP全国联赛提高组(贪心+高精)
P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成 ...
- [noip2012]国王游戏<贪心+高精度>
题目链接: https://vijos.org/p/1779 https://www.luogu.org/problem/show?pid=1080 http://codevs.cn/problem/ ...
- 【NOIP 2012 国王游戏】 贪心+高精度
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍 ...
- luoguP1080 国王游戏 题解(NOIP2012)(贪心+高精)
luoguP1080 国王游戏 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include& ...
- NOIP2012 国王游戏
2国王游戏 (game.cpp/c/pas) [问题描述] 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数 ...
- AC日记——国王游戏 洛谷 P1080
国王游戏 思路: 贪心+高精: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 struct Dat ...
随机推荐
- 来必力 & Disqus
来必力 & Disqus 正在载入来必力 https://livere.com 个人博客-双评论系统(来必力与Disqus) https://tianbozhang.coding.me/com ...
- vue & components & props & methods & callback
vue & components & props & methods & callback demo solution 1 & props & data ...
- vue render html string
vue render html string shit element ui render string array relativeShowConvert(data) { // log(`data` ...
- Baccarat中挖矿、兑换和做市的三角关系是什么?
NGK在这波DeFi潮中,推出了Baccarat,为用户带来了流动性挖矿收益,今天笔者就讲一讲Baccarat中挖矿.兑换和做市的关系. 兑换和做市是什么关系呢?众所周知,换币者,是用一种货币去换另一 ...
- NGK流动性挖矿为何会备受瞩目?
随着越来越多资金的涌入,参与DeFi项目或挖矿的用户不难发现,使用体验不尽人意,在以太坊网络的DeFi时常需要漫长的等待确认和高昂的GAS费用,加上DeFi流动性挖矿需要相对较高的资金门槛和技术门槛, ...
- 【commons-pool2源码】_pre JMX
目录 一.定义 二.demo 三.JMX在commons-pool2中的应用 一.定义 JMX(Java Management Extensions) 简单来说JMX技术提供了一套轻量的标准化的资源管 ...
- 别找了,这可能是全网最全的鸿蒙(OpenHarmony)刷机指南
目录: 1. 配置编译环境 2. 编译HarmonyOS源代码 3. 烧录HarmonyOS 4.下载文中资源 5.作者文章合集 摘要:相信很多同学都玩过鸿蒙(HarmonyOS)了,不过估计大多数同 ...
- 5. vue常用高阶函数及综合案例
一. 常用的数组的高阶函数 假设, 现在有一个数组, 我们要对数组做如下一些列操作 1. 找出小于100的数字: 2. 将小于100的数字, 全部乘以2: 3. 在2的基础上, 对所有数求和: 通常我 ...
- 前端axios传递一个包含数组的对象到后台,后台可以用String接收,也可以用List集合接收
前端代码: data() { return { listQuery: { date: [], } }}, //查询列表信息getList() { if (this.listQuery.date == ...
- 剑指 Offer 30. 包含min函数的栈 + 双栈实现求解栈中的最小值
剑指 Offer 30. 包含min函数的栈 Offer_30 题目描述: 题解分析: 题目其实考察的是栈的知识,本题的目的是使用两个栈来求解最小值. 第二个栈主要用来维护第一个栈中的最小值,所以它里 ...