hdu 5775 线段树

7
2 6 5 7 4 1 3


2 6 5 7 1 4 3
2 6 5 1 7 4 3
2 6 1 5 7 4 3
2 1 6 5 7 4 3
1 2 6 5 7 4 3
1 2 6 5 7 3 4
1 2 6 5 3 7 4
1 2 6 3 5 7 4
1 2 3 6 5 7 4
1 2 3 6 5 4 7
1 2 3 6 4 5 7
1 2 3 4 6 5 7
1 2 3 4 5 6 7


打一下一个较长序列的运行过程,发现对于一个数,可以分为两类去看:

一种是类似7这个数,它的初始位置是4,整个过程中都是要往后移动的,7的后面有三个比它小的数字4,1,3,也就是说7在冒泡的过程中,最远向右偏移3个位置;

还有一种数字是类似于4这个数字,它初始位置是5,它要最终移动到位置4,最多左移 5 - 4 = 1个位置,4这个数字右面有两个比它小的数字1,3,也就是说在移动过程中向右最远移动2位,所以数字4的移动范围是1 + 2 = 3;

剩下的就用线段树来求一个数后面有多少比它小的数字,跟求逆序数很类似

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#define maxn 100005
#define lson step<<1
#define rson step<<1|1
using namespace std;
int sum[maxn<<2];
int a[maxn],index[maxn];
int jl[maxn];
void pushup(int step)
{
	sum[step]=sum[lson]+sum[rson];
}
void build(int l,int r,int step)
{
	sum[step]=0;
	if(l==r)
		return ;
	int mid=(l+r)>>1;
	build(l,mid,lson);
	build(mid+1,r,rson);
}
void update(int l,int r,int pos,int step)
{
	if(l==r)
	{
		sum[step]++;
		return ;
	}
	int mid=(l+r)>>1;
	if(pos<=mid)
		update(l,mid,pos,lson);
	else
		update(mid+1,r,pos,rson);
	pushup(step);
}
int query(int left,int right,int l,int r,int step)
{
	if(left==l&&r==right)
	{
		return sum[step];
	}
	int mid=(l+r)>>1;
	int res=0;
	if(right<=mid)
		res+=query(left,right,l,mid,lson);
	else if(left>mid)
		res+=query(left,right,mid+1,r,rson);
	else
	{
		res+=query(left,mid,l,mid,lson);
		res+=query(mid+1,right,mid+1,r,rson);
	}
	return res;
}
int main()
{
	int T;
	scanf("%d",&T);
	int cnt=1;
	while(T--)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			int t;
			scanf("%d",&t);
			index[t]=i;
			a[i]=t;
		}
		build(1,n,1);
		for(int i=n;i>=1;i--)
		{
			jl[a[i]]=query(1,a[i],1,n,1);
			update(1,n,a[i],1);
		}
		printf("Case #%d:",cnt++);
		for(int i=1;i<=n;i++)
		{
			if(index[i]<=i)
				printf(" %d",jl[i]);
			else
				printf(" %d",(jl[i]+index[i]-i));
		}
		puts("");
	}
	return 0;
}


内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值