博客
关于我
【DG特长生2018 T4】【SSL 2888】【luogu P2003】平板游戏问题 / PLATFORME 平板
阅读量:338 次
发布时间:2019-03-04

本文共 1488 字,大约阅读时间需要 4 分钟。

平板游戏问题:计算所需支柱总长度

问题背景

在平板游戏中,有一些横放的木板,每个木板需要支撑两端。这些支撑可以搭在木板下方,如果下方没有支撑就直接搭在地板上。我们的任务是计算所有支柱的总长度。

思路解析

解决这个问题的思路是通过模拟每个木板的位置,并记录每个x坐标上木板的高度。然后,对这些木板按高度从大到小排序。每个木板的支柱长度即为其高度减去下一个木板的高度。将所有这样的长度相加即可得到总支柱长度。

代码实现

#include 
#include
#include
using namespace std;struct block { int y, x1, x2;};struct bord { int y, num, important;};bool cmp(bord x, bord y) { if (x.y == y.y) return x.important > y.important; return x.y > y.y;}int main() { // 读取输入 int n; scanf("%d", &n); // 初始化数据结构 int number[10001]; int ans = 0; struct bord x[10001][104]; for (int i = 1; i <= n; ++i) { int y, x1, x2; scanf("%d %d %d", &y, &x1, &x2); x2--; // 调整右端点 for (int j = x1; j <= x2; ++j) { // 记录每个x坐标的木板信息 x[j][number[j]] = bord{y, i, 0}; if (j == x1 || j == x2) { // 标记边缘木板 x[j][number[j]].important = 1; important_num[j]++; // 记录重要木板数量 } } } // 处理每个x坐标的木板 for (int i = 1; i <= 10000; ++i) { if (!important_num[i]) continue; // 对木板按高度排序 sort(x[i] + 1, x[i] + number[i] + 1, cmp); // 计算支柱长度 for (int j = 1; j < number[i]; ++j) { if (x[i][j].important) { ans += x[i][j].y - x[i][j + 1].y; } } } printf("%d", ans); return 0;}

总结

通过对每个木板的高度进行排序,计算相邻高度之差,我们可以轻松得到所有支柱的总长度。这种方法确保了计算的准确性和高效性,适用于处理各种规模的平板游戏问题。

转载地址:http://jgvh.baihongyu.com/

你可能感兴趣的文章
Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
查看>>
python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
查看>>
python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
查看>>
Python 和Java 哪个更适合做自动化测试?
查看>>
Python编程:掌握高级语言程序设计。从零基础到精通,收藏这篇就够了!
查看>>
python 图片转ico
查看>>
python 图片转文字、语音转文字、文字转语音保存音频并朗读
查看>>
python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
查看>>
Python 在并行进程之间共享字典
查看>>
Python 垃圾收集器文档
查看>>
python 基于 wordcloud + jieba + matplotlib 生成词云
查看>>
python 基于detectron或mask_rcnn的mask遮罩区域进行图片截取
查看>>
Python编程:Tkinter图形界面设计(2)
查看>>
Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)
查看>>
Python 基础一
查看>>
python 基础操作知识整理总结
查看>>
Python 基础知识点整理与分享,期盼你的交流!
查看>>
python 基础第七篇
查看>>
Python编程:Tkinter图形界面设计(1)
查看>>
Python 基础语法:None
查看>>