社区讨论

有没有大佬帮忙优化一下 t4分tle了必关!

P9853[入门赛 #17] 方程求解参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@miegluq1
此快照首次捕获于
2025/11/25 18:55
3 个月前
此快照最后确认于
2025/11/25 19:46
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

const int N = 2e5+50;
int n,q,j=1,x[N];
string a;

int main()
{
	cin>>n>>q;
	while(n--)
	{
		cin>>a;
		if(a[0]!='-')
		{
			int l=0,sum1=0,sum2=0,sum3=0;
			bool o=0;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum1*=10;
				sum1+=a[l++]-'0';
			}
			if(a[l+1]=='-') o=1;  
			l+=2;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum2*=10;
				sum2+=a[l++]-'0';
			}
			l++;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum3*=10;
				sum3+=a[l++]-'0';
			}
			if(o==0) sum3-=sum2;
			else sum3+=sum2;
			x[j++]=sum3/sum1;
		} 
		else 
		{
			int l=1,sum1=0,sum2=0,sum3;
			bool o=0;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum1*=10;
				sum1+=a[l++]-'0';
			}
			sum1=-sum1;
			if(a[l+1]=='-') o=1;  
			l+=2;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum2*=10;
				sum2+=a[l++]-'0';
			}
			l++;
			while(a[l]>='0'&&a[l]<='9')
			{
				sum3*=10;
				sum3+=a[l++]-'0';
			}
			if(o==0) sum3-=sum2;
			else sum3+=sum2;
			x[j++]=sum3/sum1;			
		}
	}
	while(q--)
	{
		int L,R,ans=0;
		cin>>L>>R;
		for(int i=L;i<=R;i++) 
		{
			for(int k=1;k<=j;k++) 
			{
				if(x[k]==i) 
				{
					ans++;
					break;
				}
			}
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...