平板游戏问题(luogu 2003/2018 特长生 T4)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                平板游戏问题(luogu 2003/2018 特长生 T4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                正題
luogu 2003
題目大意
在平面上有若干塊板子,每塊板子的左右端分別向下連一條柱子,連到第一塊板子,問你共要多少長度的柱子
解題思路
枚舉一個板子中間的柱子(即對這些柱子可能有貢獻)
然后取一個最高的立即可
代碼
#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)//在該板子內{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; }總結
以上是生活随笔為你收集整理的平板游戏问题(luogu 2003/2018 特长生 T4)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 哪种家电的辐射较大哪种家电的辐射较大一些
- 下一篇: 宏碁推出创新笔记本电脑宏碁推出创新笔记本
