[贪心]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 ... 
随机推荐
- node.js & fs & file read & file write
			node.js & fs & file read & file write https://nodejs.org/api/fs.html const fs = require( ... 
- Masterboxan INC :个股出现疯涨,投资者需警惕股市泡沫
			随着标普500指数自去年三月以来的暴涨,引发了很多亏损企业股价飙升,同时许多场外投资者盲目跟风,加剧了个股的疯涨.对于此现象,美国万事达资产管理有限公司不得不多次发文提醒投资者:个股出现疯涨,投资者需 ... 
- Python元组拆包捡到8倍镜快准狠
			元组拆包 元组是不可变列表,列表是通过索引取值的,元组也是: tuple_test = (1, 2, 3) a = tuple_test[0] b = tuple_test[1] c = tuple_ ... 
- 【Android初级】如何实现一个有动画效果的自定义下拉菜单
			我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项.今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果. 要实现的 ... 
- 5. vue常用高阶函数及综合案例
			一. 常用的数组的高阶函数 假设, 现在有一个数组, 我们要对数组做如下一些列操作 1. 找出小于100的数字: 2. 将小于100的数字, 全部乘以2: 3. 在2的基础上, 对所有数求和: 通常我 ... 
- sql if else 用法
			语法: case when 条件1 then 结果1 when 条件2 then 结果2 else 结果N end 可以有任意多个条件,如果没有默认的结果,最后的else也可以不写, select c ... 
- Linux流量查看工具
			目录 监控总体带宽使用 nload.bmon.slurm.bwm-ng.cbm.speedometer和netload 监控总体带宽使用(批量式输出) vnstat.ifstat.dstat和coll ... 
- Kubernetes-3.安装
			docker version:19.03.14 kubernetes version:1.19.4 本文介绍使用kubeadm安装Kubernetes集群的简单过程. 目录 使用kubeadm安装k8 ... 
- WIFI6 基本知识(一)
			什么是WI-FI6(802.11ax) Wi-Fi 6 是下一代 802.11ax 标准的简称.随着 Wi-Fi 标准的演进,WFA 为了便于 Wi-Fi 用户和设备厂商轻松了解其设备连接或支持的 W ... 
- 为 APK 文件增加右键菜单组实现快捷安装
			0.结果 1.需求 迫于每次都要打开 Powershell 手动敲 adb install xxx.apk 太麻烦,就想通过注册表搞一个右键菜单,实现快捷安装 apk 的功能. 最后决定先实现三个功能 ... 
