平板游戏问题(luogu 2003/2018 特长生 T4)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                平板游戏问题(luogu 2003/2018 特长生 T4)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                正題
luogu 2003
題目大意
在平面上有若干塊板子,每塊板子的左右端分別向下連一條柱子,連到第一塊板子,問(wèn)你共要多少長(zhǎng)度的柱子
解題思路
枚舉一個(gè)板子中間的柱子(即對(duì)這些柱子可能有貢獻(xiàn))
然后取一個(gè)最高的立即可
代碼
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long #define N 111 using namespace std; int n, y, w, x1, x2, anss, ans[N<<1]; struct node {int v, x, y, nx; }a[N<<1]; bool cmp(node a, node b) {return a.x < b.x || a.x == b.x && a.y < b.y; } int main() {scanf("%d", &n);for (int i = 1; i <= n; ++i){scanf("%d%d%d", &y, &x1, &x2);x2--;a[++w] = (node){i, x1, y, x2};a[++w] = (node){i, x2, y, 0};}sort(a + 1, a + 1 + w, cmp);for (int i = 1; i <= w; ++i)if (a[i].nx){int k = i + 1;while(a[k].x <= a[i].nx && k <= w)//在該板子內(nèi){if (a[k].y > a[i].y) ans[k] = max(ans[k], a[i].y);//高于該板子k++;}}for (int i = 1; i <= w; ++i)anss += a[i].y - ans[i];printf("%d", anss);return 0; }總結(jié)
以上是生活随笔為你收集整理的平板游戏问题(luogu 2003/2018 特长生 T4)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: 哪种家电的辐射较大哪种家电的辐射较大一些
 - 下一篇: 宏碁推出创新笔记本电脑宏碁推出创新笔记本