題目描述
題目:
農夫約翰最近正在將他的柵欄粉刷一下(這裡所有的柵欄都是在一條直線上的)。他是這樣來粉刷的:他從位置0出發,然後執行n條指令,例如,指令可以是「10 l」,表示約翰從當前的位置向左移動10個單位的距離,並且粉刷移動過程中遇到的柵欄,又或者是「15 r」,表示約翰從當前的位置向右移動15個單位的距離,並且粉刷移動過程中遇到的柵欄。
問題描述:
給定所有約翰需要移動的指令,請計算所有柵欄中至少被粉刷兩次的柵欄的總長度。約翰最多遠離初始位置1000000000個單位的距離。
輸入
第一行乙個正整數n。
接下來第2行到第n+1行,每行表示每條指令。
輸出
只有一行乙個整數,表示所有柵欄中至少被粉刷兩次的柵欄的總長度。
樣例輸入
2 r6 l
1 r8 l
1 r2 r
樣例輸出
資料範圍限制
資料範圍:1<=n<=100000。
提示
說明:樣例中,有6個單位的長度至少被粉刷兩次。分別是[-11,-8],[-4,-3],[0,2]。
正解
把每一次的操作變成乙個區間,存區間的右端和左端。
按照從小到大的順序快排。
然後純模擬,五種情況分類討論。
ac**
#include
#include
#include
using
namespace std;
int n,x,o,head,tail,s;
char ch;
struct stu
a[100005];
bool
cmp(stu x,stu y)
//快排
intmain()
else
}sort
(a+1
,a+n+
1,cmp)
; head=a[1]
.head;
tail=a[1]
.tail;
for(
int i=
2;i<=n;i++
)//下面是區間模擬
if(a[i]
.head>=tail&&x==0)
if(a[i]
.head<=head&&x==0)
if(x==0)
} cout
}
2020.02.13普及c組模擬賽6(第一題)
2020.02.13普及c組模擬賽6(第二題)
2020.02.13普及c組模擬賽6(第三題)
2020.02.13普及c組模擬賽6(第四題)
2020.02.13普及c組模擬賽6(總結)
2020 02 13普及C組模擬賽6(總結)
t1 花了1個小時才想到正解,開始想錯了,後來就用冒泡ac了 t2知道用dp,寫錯了,忘記減去重複的羊的個數了,比完賽發現不對,改過來才ac 唉 唉 唉 嘆氣三連 無奈t3 知道用區間,但是不會打,用暴力成功爆零。經過講解,知道區間的5種情況,才act4 還快就想到了正解,開始忘記加乙個特判,後來發...
2020 02 13普及C組模擬賽6(第二題)
題目描述 農場主約翰養了兩群有世仇的牛,它們被稱為蒙塔戈斯家族和卡普魯特家族。蒙塔戈斯家族的成員,羅密歐,愛上了美麗的朱麗葉,但後者正好是卡普魯特家族的成員。羅密歐希望與朱麗葉約會,但不希望卡普魯特家族的其他成員發現 否則會有可怕的事情發生!羅密歐和朱麗葉希望在牧場柵欄邊一塊盡可能大的區域中相見,這...
2020 10 05 普及組 模擬賽C組總結
總結這次考試沒發揮好,第二題沒有拿滿分,下次要繼續努力 t1 superpow 10 題目大意 已知a b 超級冪 代表 b個a的冪,求n對數的超級冪之積的個位數。正確思路 當打表後可以發現 b是沒用的,如果b大於2,b就等於2,答案和原來的是一樣的。所以處理一下跑個快速冪就行了。至於為什麼拿10分...