emmmm這個題還是比較簡單的,開始隨便想思路嘗試wa了三發,之後找找到特解否定原思路,順著特解想了發貪心就a了。
題意:給定n個區間,每個區間存在乙個長度為1的線段,現要求對所有線段進行乙個排列,要求輸出連續線段之間的最小間隔。
題解:對所有區間根據最右端進行sort,最右端小者靠前,之後按順序遍歷所有區間,維護乙個線段實際最右端cnt:
如果當前區間最左端》cnt,則ans++&&cnt=當前區間最右端;
否則,如果當前區間最右端==cnt則continue;如果當前區間最右端》cnt則cnt++;
附上ac**:
#include
#define fopi freopen("input.txt", "r", stdin)
#define dopi freopen("output.txt", "w", stdout)
#define for(i, x, y) for(int i = x; i <= y; i ++)
#define rof(i, x, y) for(int i = x; i >= y; i --)
using
namespace std;
typedef
long
long
int ll;
const
int ind=
0x3f3f3f3f
,n=1e6+10
;const ll inlld=
0x3f3f3f3f3f3f3f3f
,mod=
998244353
;struct node
s[n]
;bool
cmp(node a,node b)
intmain()
else}}
cout << ans << endl;
}return0;
}/*25
4 81 3
8 10
0 36 8
90 4
0 43 6
3 65 7
6 88 11
9 11
10 11
*/
貪心 思維 列舉
題目大意 左括號和右括號數量相等的個數 思路 從開始列舉,用兩個標記指標,乙個記錄左括號和右括號的數量,出現乙個左括號 出現乙個右括號 出現乙個?號的話我們先把它當成右括號 所以 左括號 但是問號也要記錄下來 所以問號 當 左括號的數量為零的時候說明左括號和右括號的數量相等,所以答案加1,但是如果左...
Recovery 貪心 思維
題目傳送門 點我 題意 給你乙個10字串,1代表奇數個1,0代表偶數個1,請你還原出1最多且二進位制的值最小的矩陣。include using namespace std define max n 65 char r max n c max n 存放行jox,列jox char matrix max...
D Slime 貪心,思維
模擬一 下,比如 4個 數模擬一下,比如4個數 模擬一下,比 如4個數a,b,c,da,b,c,d a,b,c,d b 吃c,吃 d,然後 a吃b,最後a能 力是a b c d b吃c,吃d,然後a 最後a能力是a b c d b吃c,吃d,然 後a 最後a 能力是a b c d a 吃b,吃 c,...