NOIP 国王游戏 codevs1198 贪心+高精度

114. 国王游戏 题意: 除第一个人以外的每个人能获得的奖赏为他之前所有人的左手乘积除以自己右手上的值(注意是之前的所有人不包括自己),通过改变顺序使得获得最多奖赏最小化。 思路: 贪心策略:受到奶牛的杂技这题的影响,我们发现乘积越大的要往后放除的大的也要往后放,所以我们根据左手右手的乘积从小到大排序,然后以此计算取max即可,交了之后WA了,标准答案贼大已经超出ull范围,所以还得上个高精乘除单精(顺便复习一手)。 AC代码: #include<bits/stdc++.h> using namespace s. 阅读详情

时空隧道


分析:
感觉这题的贪心比较不合常理,但是推一推还是可以推出来的…..主要是高精度难写….


代码如下:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=10000+5;
int n,tmp[maxn],a[maxn],aa[maxn],MAX[maxn],f,maxlen,len;
char str[maxn];
struct M{
    int x,y,pro; 
    friend bool operator < (M a,M b){
        if(a.pro==b.pro)
            return a.y<b.y;
        return a.pro<b.pro;
    }
}s[maxn];
inline void mul(int a[],int b){
    memset(tmp,0,sizeof(tmp));
    for(int i=1;i<=len;i++)
        tmp[i]=a[i]*b;
    for(int i=1;i<=len;i++)
        if(tmp[i]/10)
            tmp[i+1]+=tmp[i]/10,tmp[i]%=10;
    while(tmp[len+1])
        len++;
    while(tmp[len]/10)
        tmp[len+1]+=tmp[len]/10,tmp[len]%=10,len++;
    for(int i=1;i<=len;i++) 
        a[i]=tmp[i];
}
inline void div(int a[],int b){
    memset(tmp,0,sizeof(tmp));
    int x=0;
    for(int i=1;i<=len;i++)
        tmp[i]=(a[i]+x*10)/b,x=(a[i]+x*10)%b;
    int pd=0;
    for(int i=1;i<=len;i++)
        if(tmp[i]){
            pd=1;
            break;
        }
    if(pd){
        int i=1;
        for(;tmp[i]==0;i++);
        f=i;
        for(;i<=len;i++){
            if((tmp[i]>MAX[i]&&len-f+1==maxlen)||len-f+1>maxlen){
                for(int j=f;j<=len;j++)
                    MAX[j]=tmp[j];
                maxlen=len-f+1;
                break;
            }
            if(maxlen>len-f+1||tmp[i]<MAX[i])
                break;
        }
    }
}
signed main(void){
    scanf("%d",&n);
    for(int i=0;i<=n;i++)
        scanf("%d%d",&s[i].x,&s[i].y),s[i].pro=s[i].x*s[i].y;
    sort(s+1,s+n+1);
    for(int i=0;s[0].x;i++)
        str[i]=s[0].x%10+'0',s[0].x/=10;
    len=strlen(str);
    for(int i=1;i<=len;i++)
        a[i]=str[i-1]-'0';
    for(int i=1;i<=len;i++)
        aa[i]=str[len-i]-'0';
    for(int i=1;i<=n;i++){
        div(aa,s[i].y),mul(a,s[i].x);
        for(int j=1;j<=len;j++)
            aa[j]=a[len-j+1];
    }
    for(int i=f;i<=maxlen+f-1;i++)
        cout<<MAX[i];
    cout<<endl;
    return 0;
} 

by >_< neighthorn

leetcode1198-Coding-Problems:我已解决编码问题的存储库 代码 1198 编码问题 我已解决编码问题的存储库。 力码 ( :red_envelope: 医学) (BFS) ( :red_envelope: Med)(递归,BST) ( :red_envelope: Med)(BFS,二叉树) ( :red_envelope: Med) (哈希图) ( :red_envelope: 医学) (DFS) ( :red_envelope: Med)(回溯) ( :green_square: 简单)(链表) ( :red_envelope: Med)(链接列表) ( :red_envelope: Med)(链接列表) ( :red_envelope: 和) ( :red_envelope: Med)(回溯) ( :green_square: 简单的) ( :red_envelope: Med)(递归) ( :green_square: 简单的) ( :green_square: 简单)(哈希图) ( :red_envelope: 中) (BST, DFS) ( :red_envelope: Med) (哈希图) ( :green_square: 简单的) ( :red_envelope: Med) (1.DFS, Graph | 2.Stack) ( :red_envelope: Med)(二分查找) ( :red_envelope: Med)(滑动窗口,Hashmap) ( :red_envelope: 中)(队列) ( :red_envelope: Med) (哈希图) ( :red_envelope: 中)(堆栈) ( :red_envelope: Med)(二分查找) ( :red_envelope: Med) (Hashmap, Bucket black) ( :red_envelope: Med)(DFS,递归) ( :red_envelope: Med)(堆栈,贪婪) ( :red_envelope: 和) ( :red_envelope: 医学) (BFS) ( :red_envelope: Med)(插入黑色,链表) ( 立即下载

相关推荐

Windows10下部署Heygem进行数字人生成

对于使用Heygem生成数字人,需要注意几个问题: + 需要使用Nvidia的显卡。 + 需要在Windows上进行本地部署。主要原因为客户端是Windows的,客户端对上传的视频写入硬编码的`D:\heygem_data\voice\data`目录,需要在容器上读取这些文件。 + 需要在Windows上部署Docker,将Windows的目录映射到容器中,由容器中的服务进行读取。 + 需要特别注意,一定要有D盘,这个D盘是Windows的D盘,不能是插入的USB设备后产生的D盘。 + 需要下载3个Doc

冀辉的博客 5617

Codeforces 1198 简要题解

文章目录EF 传送门 前四题对应这套题的CCC~FFF E 传送门 考虑用扫描线的思想将原图分成若干小矩形,然后就可以利用行列二分图匹配+差分的思想建图,最后用dinicdinicdinic跑最小割即可。 代码: #include<bits/stdc++.h> #define ri register int #define fi first #define se second usin...

苟为蒟蒻又何妨 761

【蓝牙专题】HCI协议解析

一、概念: 很多人接触蓝牙,是从HCI开始,因为HCI是主机控制接口协议(Host Controller Interface),蓝牙命令通过HCI来发送到Controller; 1、架构 如下图,HCI通过物理接口(USB、UART等)或虚拟接口,传递数据到Controller,Controller也通过同样的接口发送接收数据,这里注意到HCI层是在L2CAP层之下,LMP层之上; HCI

蚂蚁的专栏 5068

洛谷 1080 [NOIP2012] 国王游戏 贪心+高精

hh

Loi_cgold 435

英飞凌TC3XX芯片---------CAN模块详解

CAN 总线是一种广泛应用于汽车、工业控制和其他领域的串行通信协议,CAN 英文名称:Controller Area Network。最初由德国的 Bosch 公司开发,用于汽车电子系统之间的通信。CAN 总线具有高可靠性、抗干扰能力强和实时性好等特点,因此被广泛应用于需要可靠数据传输的领域。CAN2.0B 协议中的 CAN 最多支持 29 位 ID,但是网络架构中使用的一般是 11 位的标准帧 ID。如下图是标准 CAN FD 帧数据结构:关于 CAN 协议相关内容,本文不作阐述。

sky的博客 3666

【Unity 城市建模插件】POLY-Megapolis City Pack 提供超过数百种城市建筑、道路、车辆与城市家具模型,完美适用于构建现代化城市、模拟城市游戏、都市题材冒险类游戏和开放世界项目

POLY - Megapolis City Pack 是一套风格统一、内容丰富的低多边形城市建模资源包,专为 Unity 引擎设计。该资源包提供超过数百种城市建筑、道路、车辆与城市家具模型,完美适用于构建现代化城市、模拟城市游戏、都市题材冒险类游戏和开放世界项目。无论是快速原型开发还是正式发布项目,POLY 系列都能提供高效、风格统一的解决方案。

2403_88403568的博客 633

LeetCode 1198. 找出所有行中最小公共元素(二分/合并有序链表)

文章目录1. 题目2. 解题2.1 按列遍历2.2 二分查找2.3 合并k个有序链表 1. 题目 给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了。 请你帮忙找出在所有这些行中 最小的公共元素。 如果矩阵中没有这样的公共元素,就请返回 -1。 示例: 输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]] 输出:5 提示: 1 <= mat.length, mat[i].length <= 500 1 <

Michael是个半路程序员 3015

在 SAP 中,寄售业务(Consignment)与管道业务(Pipeline)都属于“物料先到、发票后到”的特殊采购模式,但两者的库存形态、物权转移时点、结算触发条件、系统配置完全不同

SAP中寄售业务与管道业务均属"先货后票"采购模式,但存在本质差异。寄售业务(如手机芯片)采用实物库存管理(标记"K"),物权在领用时转移,通过411K/201K移动类型触发负债;管道业务(如蒸汽)无实物库存,采用261P等移动类型直接消耗并生成应付。系统配置上,寄售需K类信息记录及GR收货,管道需P类信息记录且免GR。两者均通过MRKO汇总结算,但寄售按领用量计费,管道按提取量实时计费。核心区别在于库存形态与物权转移时点。

金牌架构师 555

[NOIP2012 提高组] 国王游戏(贪心,排序,高精度)

无他,唯贪心耳

CH_canghan的博客 755

YOLOv8魔改系列:将CIoU替换成Wise-IoU,飞速涨点

将YOLOv8中CIoU替换成Wise-IoU,实现飞速涨点

qq_66386046的博客 2678

29、高速低功耗采样保持放大器设计

本文详细介绍了适用于低功耗模数转换器的高速低电压采样保持放大器(SHA)的设计技术,包括传统SHA的局限性、采样技术分类以及全NPN型和BiCMOS型SHA的具体设计实现。同时,文章深入探讨了优化输入电容、采样开关驱动及低功耗设计等具体措施,并提供了10位ADC前端和无线通信应用中的实例分析,为相关领域的工程师提供有价值的参考。

weixin_30600615的博客 424

【贪心+高精度】NOIP2012D1T2国王游戏Codevs1198

我这辈子最恨字符串和高精度OTZ 题目描述 Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自

CreationAugust is 14 years old forever 1072

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[NOIP2012提高组]国王游戏

题目:洛谷P1080、Vijos P1779、codevs1198。 题目大意:国王和每个大臣左、右手各写了一个数。规定每个大臣得到的金币数为他前面所有人左手的数字的乘积除以他自己右手的数(向下取整),现在国王要改变大臣的排列顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少(国王永远站在最前面)。 解题思路:(贪心)首先,交换相邻两个大臣只会对这两个大臣造成影响,并不会对其他大臣造成...

227

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

洛谷P1080 国王游戏

题目描述 恰逢 HH H国国庆,国王邀请n nn 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 nnn 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一...

ESTHERWXY的博客 361

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

114. 国王游戏 贪心,高精度

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

2303_79132118的博客 447

贪心问题——国王游戏

题目来源:https://www.luogu.com.cn/problem/P1080。

m0_60738889的博客 1565

NOIP2012 国王游戏(贪心)

原题链接 题目描述 输入描述 输出描述 输入样例 3 1 1 2 3 7 4 4 6 输出样例 2 样例说明 数据范围 本题中不难发现,交换任意两个大臣时,只会影响他们各自的金币数,而不会影响他们之前和之后的大臣的金币数,因此可以考虑贪心对比两个大臣交换前后的金币。假设相邻的两个大臣中,其左右手分别为 a1,b1,a2,b2,之前所有人的左手乘积总和为 sum,可得交换前为 sum * a1 / b2,交换后为 sum * a2 / b1,若存在交换前 > 交换后,可推出

国家一级划水运动员的博客 789

leetcode 1198. 找出所有行中最小公共元素(C++)

给你一个矩阵mat,其中每一行的元素都已经按递增顺序排好了。请你帮忙找出在所有这些行中最小的公共元素。 如果矩阵中没有这样的公共元素,就请返回-1。 示例: 输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]] 输出:5 提示: 1 <= mat.length, mat[i].length...

qq_27060423的博客 2838

【LeetCode - 1198】找出所有行中最小公共元素

【中等】哈希、二分法

学哥斌的博客 1539

[NOIP2012 提高组] 国王游戏(C++,贪心,高精度)

贪心条件推导完成后,只需要再写一个高精度就可以了

m0_74036684的博客 1904

【高精度+贪心】【NOIP2012】国王游戏

Description 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个...

banxi81852的专栏 385

114. 国王游戏【高精度+贪心】

#include<bits/stdc++.h> using namespace std; typedef pair<int,int> PII; const int N=1e5+10; bool cmp(PII a,PII b) { return a.first*a.second<b.first*b.second; } vector<PII>ve; vector<int> mul(vector<int>& A,int b) ..

辉小歌的博客 5981

codevs 1198 国王游戏 贪心

题目描述 Description 恰逢 H 国国庆,国王邀请 n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手...

dataxiang6224的博客 348

国王游戏(贪心+模拟)

题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特

amdkk的博客 3641

P1080 国王游戏(贪心)

题目传送门 题意: 有一个国王的左右手上分别写了a0,b0,他把他的n个臣子叫过来,左右手分分别写上ai,bi,每个臣子能获得的奖励是所有站在他前面的人a[i]的乘积除以这个臣子右手上的数字(国王始终站在第一个),国王想让臣子获得金币的最大值最小,问你国王该怎么安排这个队列?输出这个最小值。 思路: 假设有两个臣子一个国王,两个臣子分别为a1,b1,a2,b2,我们有两种排列方式,ans1=max(a0/b1, a0 * a1 / b2),ans2=max(a0/b2. a0 * a2 / b1), 我们简

Joker_He的博客 349
上一篇: POJ 3657 Haybale Guessing 并查集+二分答案
下一篇: POJ 1741 Tree 点分治
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值