日常训练 20170708 假如爱有天意love

本文解析了一道关于两个玩家轮流从栈中取元素以最大化各自收益的博弈问题。通过比较不同元素组合的价值来确定最优策略,并给出了完整的C++实现代码。

题面:
  有 N (1N105) 个大小为 2 的栈。 Alice 和 Bob 两个人进行轮流操作,Alice 先手。 每个人每次可以取出一个栈顶的元素,获得对应的收益,具体的:第 i 个栈的栈顶的元素给 Alice 的收益是 Ai,Bob 的收益是 Bi,栈底的元素给 Alice 的收益是 Ci,给 Bob 的收益是 Di。现在 Alice 和 Bob 都想最大化自己的收益减去对方的收益。问 Alice 的收益减 Bob 的收益最后会是多少。
题解:
   拿一件物品的收益是自己拿了物品的收益加上对方没拿到的收益,那么一件物品的实际价值就是两个人估价的和了,如果上层物品价值比下面的高两个人肯定都要抢,就把上下物品都丢到数组sort一下,如果上面物品价值比下面小,谁拿上面谁倒霉,而且倒霉的肯定是先手,因为先手只要一拿上面的后手拿对应下面的肯定对后手最优,那么这些堆一定是先手取上面,后手取下面。

#include<bits/stdc++.h>
const int N = 2e4 + 10;
template <typename T> void read(T &x) {
    x = 0; T f = 1; char c = getchar();
    for (; !isdigit(c); c = getchar()) if (c == '-') f *= -1;
    for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
    x *= f;
}
struct rec{int a, b;} a[N * 2];
bool cmp(const rec &a, const rec &b) {return a.a + a.b > b.a + b.b;};
int n, a1, b1, a2, b2, cnt;
long long ans;
int main() {
    freopen("love.in", "r", stdin);
    freopen("love.out", "w", stdout);
    read(n);
    for (int i = 1; i <= n; i++) {
        read(a1), read(b1), read(a2), read(b2);
        if (a1 + b1 > a2 + b2)
            a[++cnt] = (rec) {a1, b1},
            a[++cnt] = (rec) {a2, b2};
        else
            ans += a1 - b2;
    }
    std::sort(a + 1, a + cnt + 1, cmp);
    for (int i = 1; i <= cnt; i += 2)
        ans += a[i].a - a[i + 1].b;
    printf("%lld\n", ans);
    return 0;
}
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 HTML大屏展示模板是一种用于设计具有视觉冲击力且内容充实的巨型显示屏应用的设计方案,其应用范围广泛,涵盖了数据分析、监控以及决策支持等多个领域。这些模板通常整合了HTML、CSS、JavaScript等多种技术,尤其借助ECharts等数据可视化工具以达成复杂数据的图形化呈现。以下是对相关技术细节的深入说明: 1. **可视化**:数据可视化是将抽象的数据转化为直观的图像或图表的技术手段。这种技术有助于迅速识别数据中的模式、发展趋势和异常情况,使得非专业背景的人员也能轻松理解复杂的数据信息。在大屏展示场景中,可视化通常包含折线图、柱状图、饼图、热力图、地图等多种图表形式。 2. **大数据**:大数据指的是规模庞大、增长迅速、种类多样且数据密度较低的数据集合。在HTML大屏展示中,大数据的应用旨在支持实时或近乎实时的决策制定,例如监控销售业绩、交通流量、能源消耗等关键性能指标。 3. **HTML**:超文本标记语言(HTML)构成了网页内容的基础结构,用于界定页面的布局和元素。在大屏展示模板中,HTML负责构建页面组件,例如标题、段落、图像以及图表容器等。 4. **CSS**:层叠样式表(CSS)用于调控网页的视觉风格和布局结构。在大屏模板设计中,CSS扮演着核心角色,确保设计的响应性、适应性和美观度,包括设定颜色、字体、间距、动画效果等。 5. **ECharts**:ECharts是由百度研发的一款开源JavaScript数据可视化库,能够支持多种图表类型,如折线图、柱状图、散点图等,并提供了丰富的交互特性。在大屏展示中,ECharts能够助力生成动态且交互式的数据...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值