• UVA1205 Color a Tree


    Lisa

    贪,就硬贪

    显然当权值最大的那个点可以选了之后,必须立马选它答案才会最有

    既然这个点必须立即选的话,那么何不把它和父亲合并起来,取个平均值

    然后这颗新树上重复这个操作

    就可以得到一个染色的顺序

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    template<class T>inline void read(T &x)
    {
        x=0;register char c=getchar();register bool f=0;
        while(!isdigit(c))f^=c=='-',c=getchar();
        while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
        if(f)x=-x;
    }
    template<class T>inline void print(T x)
    {
        if(x<0)putchar('-'),x=-x;
        if(x>9)print(x/10);
        putchar('0'+x%10);
    }
    int c;
    struct cow{
    	int mi;
    	int ma;
    	friend bool operator  <(cow x,cow y){
    		return x.ma<y.ma;
    	}
    }co[26000];
    int l;
    int cnt;
    //int num[2600];
    //int eff[2600];
    struct sp{
    	int num;
    	int eff;
    	friend bool operator <(sp x,sp y){
    		return x.eff<y.eff;
    	}
    }s[2500];
    int main(){
    	read(c);read(l);
    	for(int i=1;i<=c;++i){
    		read(co[i].mi);read(co[i].ma);
    	}
    	for(int i=1;i<=l;++i){
    		read(s[i].eff);read(s[i].num);
    	}
    	sort(co+1,co+c+1);
    	sort(s+1,s+l+1);
    	for(int i=1;i<=c;++i){
    		for(int j=1;j<=l;++j){
    			if(s[j].num&&(s[j].eff>=co[i].mi&&s[j].eff<=co[i].ma)){
    				s[j].num--;
    				cnt++;
    				break;
    			}
    		}
    	}
    	cout<<cnt;
    	return 0;
    }
    
  • 相关阅读:
    路由守卫
    this.$nextTick() 的一些理解
    3d饼图
    element ui 可编辑的表格
    vue 路由传参
    vue+element ui 时间格式化
    element ui 选择期 传对象
    数据结构学习第十天
    数据结构学习第九天
    数据结构学习第八天
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15491626.html
Copyright © 2020-2023  润新知