zoukankan      html  css  js  c++  java
  • LibreOJ #10087. 「一本通 3.4 例 1」Intervals

    为什么差分约束的题我总能不用差分约束做。


    这道题我用的贪心。其实就是区间选点问题啦,对于这类问题,我们的贪心策略肯定是让多个区间覆盖在一个点上,那么我们可以想到的就是按照末尾排序,在一个区间的末尾去加点,这样才能使一个点覆盖更多的点,然后就随便统计统计,如果想要优化,可以加树状数组来搞,但是由于太懒了,没加~

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    struct node{
    	int l , r , w;
    };
    node e[50010];
    int n , ans;
    int vis[50010];
    bool cmp(node x , node y){
    	return x.r < y.r;
    }
    int main(){
    	int T;
    	cin >> T;
    	while(T--){
    		cin >> n;
    		memset(vis , 0 , sizeof(vis));
    		ans = 0;
    		for(int i = 1; i <= n; i++) cin >> e[i].l >> e[i].r >> e[i].w;
    		sort(e + 1 , e + n + 1, cmp);
    		for(int i = 1; i <= n; i++){
    			int sum = 0;
    			for(int j = e[i].l; j <= e[i].r; j++) 
    				if(vis[j]) sum++;
    			if(sum >= e[i].w) continue;
    			for(int j = e[i].r; j >= e[i].l; j--){
    				if(!vis[j]) vis[j] = 1 , sum++ , ans++;
    				if(sum >= e[i].w) break;
    			}
    		}
    		cout << ans << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    HDU 1018 Big Number
    UVa 10603 倒水问题
    UVa 12108 特别困的学生
    UVa 1590 IP网络(简单位运算)
    UVa 12325 宝箱
    UVa 253 骰子涂色
    UVa 815 洪水!
    springmvc(2)处理器设配器和映射器
    SpringMVC(1)
    MyBatis(10)逆向工程
  • 原文地址:https://www.cnblogs.com/bzzs/p/13231033.html
Copyright © 2011-2022 走看看