题目大意:

有一些数对,每个数对的得分为它之前所有数对的左侧数之乘积除以它的右侧数

求重新排列后数列中所有数对中最大得分尽可能小(第一个数对不参与排序,仍然为第一个)

思路:

非常简单,可以根据它对后面的影响排序

即若a i.l/a j.r < a j.l/a i.r则a i在a j前

则a i.l * a i.r < a j.l * a j.r则a i在a j前

那么我只需要一个重载运算符

但是呢,数据较大需要高精度

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<stack>
#define inf 2147483647
#define ll long long
#define MOD 1000000000
#define MAXN 1010
using namespace std;
inline int read()
{
int x=,f=;
char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
int n;
struct data
{
int l,r;
bool operator < (const data &a) const
{
return (l*r<a.l*a.r)||(l*r==a.l*a.r&&r<a.r);
}
}g[MAXN];
struct bign
{
ll num[MAXN*];
int len;
bign() {memset(num,,sizeof(num));len=;}
void mul(int a)
{
ll k=;
for(int i=;i<=len;i++)
{
num[i]=num[i]*a+k;
k=num[i]/MOD;
num[i]%=MOD;
}
if(k) {len++;num[len]=k;}
}
bign div(int a)
{
ll k=;
bign res;res.len=len;
for(int i=len;i>=;i--)
{
res.num[i]=(num[i]+k)/a;
k=((num[i]+k)%a)*MOD;
}
if(!res.num[len]&&res.len) res.len--;
return res;
}
void print()
{
printf("%d",num[len]);
for(int i=len-;i>=;i--)
{
printf("%09d",num[i]);
}
}
}tmp,ans;
void amax(bign b)
{
bool flag=;
if(ans.len>b.len) return ;
if(ans.len<b.len)
{
ans.len=b.len;
for(int i=ans.len;i>=;i--) ans.num[i]=b.num[i];
return ;
}
for(int i=ans.len;i>=;i--)
if(ans.num[i]<b.num[i]) {flag=;break;}
if(flag)
for(int i=ans.len;i>=;i--) ans.num[i]=b.num[i];
}
int main()
{
n=read();
int a=read(),b=read();
for(int i=;i<=n;i++) g[i].l=read(),g[i].r=read();
sort(g+,g+n+);
tmp.num[]=a;
for(int i=;i<=n;i++)
{
amax(tmp.div(g[i].r));
tmp.mul(g[i].l);
}
ans.print();
}

orz 写了个压位,又是小技巧调一年

第一次是因为没搞清楚*=的优先级

然后是因为除法考虑余数时算错了数组

luogu 1080 国王游戏的更多相关文章

  1. Luogu P1080国王游戏(贪心)

    国王游戏 题目链接:国王游戏 ps:题目数据说明了要写高精度. 这个题的答案是\(a.l * a.r < b.l * b.r\)按照这个进行排序 题解中大部分只是如何证明排序是: \(a.l * ...

  2. luogu P1080 国王游戏

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...

  3. luogu P1080国王游戏

    贪心加高精 传送门:QWQ 先考虑两个人 a0 b0 p1 a1 b1 p2 a2 b2 那么满足:\(\huge ans1=\max(\frac{a0}{b1} , \frac{a0a1}{b2}) ...

  4. Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)

    Luogu 1080 [NOIP2012]国王游戏 (贪心,高精度) Description 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己 ...

  5. [noip2012]国王游戏<贪心+高精度>

    题目链接: https://vijos.org/p/1779 https://www.luogu.org/problem/show?pid=1080 http://codevs.cn/problem/ ...

  6. NOIP2012 国王游戏

    2国王游戏 (game.cpp/c/pas) [问题描述] 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数 ...

  7. 【NOIP 2012 国王游戏】 贪心+高精度

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍 ...

  8. Codevs 1198 国王游戏 2012年NOIP全国联赛提高组

    1198 国王游戏 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 恰逢 H 国国庆,国王邀 ...

  9. luogu P2123 皇后游戏

    传送门 跟国王游戏一样的分析 考虑相邻的两个大臣,设他们前面的\(\sum a_j\)为\(s\),同时注意到后面人的贡献更大 所以\(i\)在前面时,\(c_j=\max(\max(c_{last} ...

随机推荐

  1. [Python3网络爬虫开发实战] 3.1.2-处理异常

    前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的error模块定义 ...

  2. 树莓派 -- bcm2835 library (1)

    bcm2835 library提供了user space 操作IO的代码. 本文不涉及代码分析,先直观的按照user guide完成操作. 1. 在Raspberry中安装bcm2835 librar ...

  3. PHP:GD库 图片水印处理

    文章来源:http://www.cnblogs.com/hello-tl/p/7592974.html <?php /** * 处理图片类 * 1.添加文字水印 * 2.添加图片水印 * 3.压 ...

  4. PHP:车牌照合法性

    文章来源:http://www.cnblogs.com/hello-tl/p/7592362.html <?php /** * [verifyCarCard description] 效验车牌号 ...

  5. LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Apache篇

    文章来源:http://www.cnblogs.com/hello-tl/p/7568803.html 更新时间:2017-09-21 15:38 简介 LAMP+R指Linux+Apache+Mys ...

  6. 洛谷 4932 洛谷10月月赛II T1 浏览器

    [题解] x xor y的结果在二进制下有奇数个1,等价于x与y在二进制下的1的个数之和为奇数,因为x xor y减少的1的个数一定是偶数(两个数这一位都为1,xor的结果为0,减少了2个1) 那么答 ...

  7. 全文搜索(A-2)-推荐算法

    一般来说推荐算法分为两类. 基于内容过滤的推荐: 基于协同过滤的推荐: 基于内容过滤的推荐,基于特征码描述项目. 协同过滤算法的设计基于一个假设,“和目标用户相似度高的用户,其感兴趣的物品目标用户也会 ...

  8. Mvc系统学习9——Areas学习

    在Mvc2.0中,新增加了一个特性就是Areas.在没有有使用Areas的情况下,我们的Mvc项目组织是下面这样的.当项目庞大的时候,Controllers,Model,View文件下下面势必会有很多 ...

  9. POJ-20407Relatives/NYOJ-333mdd的烦恼,欧拉函数简单应用,模板A

     poj                         Relatives                                Time Limit: 1000MS   Memory Li ...

  10. mysql ab主从复制出错及解决过程

    一.mysql主从服务器报错描述:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0 mysql slave stop ; mysql sla ...