洛谷P1080 国王游戏
两个难点。
- 怎么想到的贪心?
首先确定算法:
显然不是数据结构题。转成图论也不太可能。
考虑DP:f[i][j]表示前i个人取j状态的最小最大值......2^1000,直接放弃。
因为出现了“最大值最小”,考虑二分答案:如果我们有一个ans是最大值,我们怎么判断是否可行?
要确保每一个数都不会超过ans,这很困难。
思路戛然而止。
然后思考:本题要求排序。zbtrs:排序不就是贪心吗?
然后想到邻位互换法,得出贪心策略。
显然很难想出贪心来......
- 高精度
这个没什么好说的,写个高精度乘单精度,除单精度,比较大小,输出,就行了。
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
const int N = ;
struct LL {
string num;
void out() {
for(int i = ; i < num.size(); i++) {
putchar(num[i]);
}
return;
}
LL operator * (const int& x) const {
int len = num.size();
int a[len + ];
memset(a, , sizeof(a));
for(int i = ; i < len; i++) {
a[i] = num[len - i - ] - '';
a[i] *= x;
}
for(int i = ; i < len; i++) {
if(a[i] > ) {
a[i + ] += a[i] / ;
a[i] %= ;
if(i + == len) {
len++;
}
}
}
string f = "";
for(int i = len - ; i >= ; i--) {
f += (a[i] + '');
}
LL t;
t.num = f;
return t;
}
LL operator / (const int x) const {
int len = num.size();
int a[len];
for(int i = ; i < len; i++) {
a[i] = num[len - i - ] - '';
}
for(int i = len - ; i > ; i--) {
a[i - ] += * (a[i] % x);
a[i] /= x;
}
a[] /= x;
while(len >= && a[len - ] == ) {
len--;
}
string f = "";
for(int i = len - ; i >= ; i--) {
f += (a[i] + '');
}
LL t;
t.num = f;
return t;
}
bool operator < (const LL& x) const {
if(num.size() != x.num.size()) {
return num.size() < x.num.size();
}
for(int i = ; i < num.size(); i++) {
if(num[i] != x.num[i]) {
return num[i] < x.num[i];
}
}
return ;
}
};
struct Man {
int a, b, c;
bool operator < (const Man &f) const{
return this->c < f.c;
}
}man[N];
int main() {
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++) {
scanf("%d%d", &man[i].a, &man[i].b);
man[i].c = man[i].a * man[i].b;
} sort(man + , man + n + );
/*
for(int i = 1; i <= n; i++) {
printf("%d %d %d\n", man[i].a, man[i].b, man[i].c);
}
printf("\n");
*/
LL ans, now;
now.num = "";
ans.num = "";
for(int i = ; i < n; i++) {
now = now * man[i].a;
LL t = now / man[i + ].b;
if(ans < t) {
ans = t;
}
}
ans.out();
return ;
}
/**
3
1 7
6 1
2 3
2 3
ans:4
*/
AC代码
洛谷P1080 国王游戏的更多相关文章
- 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
- 【题解】洛谷 P1080 国王游戏
目录 题目 思路 \(Code\) 题目 P1080 国王游戏 思路 贪心+高精度.按\(a \times b\)从小到大排序就可以了. \(Code\) #include<bits/stdc+ ...
- 洛谷P1080 国王游戏 python解法 - 高精 贪心 排序
洛谷的题目实在是裹脚布 还编的像童话 这题要 "使得获得奖赏最多的大臣,所获奖赏尽可能的少." 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排 ...
- [NOIP2012] 提高组 洛谷P1080 国王游戏
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍 ...
- 洛谷 P1080 国王游戏
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...
- 洛谷—— P1080 国王游戏
https://www.luogu.org/problem/show?pid=1080 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整 ...
- 洛谷P1080 国王游戏【大数】【贪心】
题目:https://www.luogu.org/problemnew/show/P1080 题意: 一个国王和n个大臣,每个人左右手上都有一个数值. 现在将国王排在队首,将大臣进行排序.每个大臣的值 ...
- 洛谷 P1080 国王游戏 题解
原题 传送门 思路 分析 我们先假设队伍如下: People left hand right hand Before \(S_a\) A \(a_1\) \(b_1\) B \(a_2\) \(b_2 ...
- 【题解】洛谷P1080 [NOIP2012TG] 国王游戏(贪心+高精度)
次元传送门::洛谷P1080 思路 我们模拟一下只有两个大臣的时候发现 当a1∗b1<a2∗b2是ans1<ans2 所以我们对所有大臣关于左右手之积进行排序 得到最多钱的大臣就是 ...
随机推荐
- Vue 中提示报错 handlers[i].call is not a function解决方法
Vue 中提示警告 TypeError: handlers[i].call is not a function at callHook (vue.esm.js?a026:2921) at Object ...
- Protocol buffers--python 实践(二) protocol buffers vs json
为什么专门开一个坑,来使用pb.放弃本在各平台上都支持得很好的json而使用pb的一个归根到底的理由,就是希望在保证强类型和跨平台的情况下,能够更轻,更快,更简单.既然是奔着这个目标去的,到底多快我需 ...
- 对C#调用C++的dll的一点思考
最近在对接C++程序的时候碰到了一些问题,然后花了一段时间才解决,今天就这些小问题来做一个总结,很多时候由于对另外一种开发语言的不熟悉,会在使用的过程中遇到很多的问题,这些问题看似简单但是背后却有很多 ...
- fiddler学习笔记2 字段说明;移动设备、解密证书
# : 抓取顺序从1开始递增 result: http 请求状态 protocol: 请求使用的协议如:http https ftp Host: 请求地址 ...
- vue監聽屬性
使用$watch,就是監聽到某個值發生變化,執行回調函數.
- JS--操作DOM树
<ul id="ul1"> <li id="li1">111</li> <li id="li2"& ...
- 利用H5 FormData 实现表单中多图上传(可带其他如String类型数据)
本篇的具体思路来源于右侧网址:http://blog.csdn.net/qq_19551571/article/details/49977983 本篇代码有所修改,请具体区分. 本篇使用的是 form ...
- NPOI 上传Excel功能(二)
3.上传文件,写入log using DC.BE.Business.SYS; using DC.BE.Entity.ERP; using DC.BE.Entity.SAS; using DC.BE.E ...
- web font
gfx.downloadable_fonts.enabled
- 文件操作 chardet使用
#_*_coding:utf-8_*_ import chardet #f = open(file="兼职白领学生空姐模特护士联系方式.txt", mode="rb&qu ...