zoukankan      html  css  js  c++  java
  • 种树

    题目描述

    思路

    代码

    #include <cstdio>
    
    int n, m, ans;
    struct Node {
    	int a, b, c;
    } arr[5005], tmp;
    bool rec[30005];
    inline int read() {
    	int s = 0, f = 1;
    	char ch = getchar();
    	while (ch < '0' || ch > '9') {
    		if (ch == '-') f = -1;
    		ch = getchar();
    	}
    	while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
    	return s * f;
    }
    void qsort(int L, int R) {
    	int l = L, r = R;
    	int mid = arr[l + r >> 1].b;
    	while (l < r) {
    		while (arr[l].b < mid) l++;
    		while (arr[r].b > mid) r--;
    		if (l <= r) {
    			tmp = arr[l];
    			arr[l] = arr[r];
    			arr[r] = tmp;
    			l++, r--;
    		}
    	}
    	if (L < r) qsort(L, r);
    	if (l < R) qsort(l, R);
    }
    int main() {
    	n = read(), m = read();
    	for (int i = 1; i <= m; ++i) arr[i].a = read(), arr[i].b = read(), arr[i].c = read();
    	qsort(1, m);
    	for (int i = 1, j, k; i <= m; ++i) {
    		k = 0;
    		for (j = arr[i].b; j >= arr[i].a; --j) {
    			if (rec[j]) k++;
    		}
    		if (k >= arr[i].c) continue;
    		for (j = arr[i].b; j>= arr[i].a; --j) {
    			if (!rec[j]) rec[j] = true, k++, ans++;
    			if (k == arr[i].c) break;
    		}
    	}
    	printf("%d
    ", ans);
    	return 0;
    }
    
  • 相关阅读:
    1924班网址
    20192414《网络空间安全导论》第一周学习总结
    H-Angry
    A-Plague Inc
    B-Rolling The Polygon
    F-Moving On
    A-Maximum Element In A Stack
    J-Word Search
    E-Pawns
    D-Lift Problems
  • 原文地址:https://www.cnblogs.com/liuzz-20180701/p/11555827.html
Copyright © 2011-2022 走看看