社区讨论

如何评价/lb

灌水区参与者 4已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@lrsxo4f0
此快照首次捕获于
2024/01/25 16:09
2 年前
此快照最后确认于
2024/01/25 19:02
2 年前
查看原帖
rt
CPP
#include<bits/stdc++.h>

using namespace std;
const int maxn=100005;
int l,r,ans=0;
int a[maxn];
struct node{
	int dgt1,dgt2,dgt3;
	int dgt4,dgt5,dgt6;
}d[maxn];
int sep(int num,int ot_dgt){
	
	int dgt_num,j,ot;
	for(int i=1;i<=6;i++){
		j=pow(10,i);
		if(num%j==num){
			dgt_num=i-1;
		}
	}
	if(ot_dgt==dgt_num){
		ot=num/pow(10,ot_dgt);
	}else if(ot_dgt==1){
		ot=num%10;
	}else{
		ot=(num-num/(pow(10,ot_dgt)))/pow(10,ot_dgt-1);
	}
	
	return ot;
}
int main(){
	
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>l>>r;
	for(int i=l;i<=r;i++) cin>>a[i];
	
	for(int i=l;i<=r;i++){
		if(i<10){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
		}else if(10<=i&&i<=99){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
			d[i].dgt2=sep(i,2);
			if(d[i].dgt2==2) ans++;
		}else if(100<=i&&i<=999){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
			d[i].dgt2=sep(i,2);
			if(d[i].dgt2==2) ans++;
			d[i].dgt3=sep(i,3);
			if(d[i].dgt3==2) ans++;
		}else if(1000<=i&&i<=9999){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
			d[i].dgt2=sep(i,2);
			if(d[i].dgt2==2) ans++;
			d[i].dgt3=sep(i,3);
			if(d[i].dgt3==2) ans++;
			d[i].dgt4=sep(i,4);
			if(d[i].dgt4==2) ans++;
		}else if(10000<=i&&i<=99999){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
			d[i].dgt2=sep(i,2);
			if(d[i].dgt2==2) ans++;
			d[i].dgt3=sep(i,3);
			if(d[i].dgt3==2) ans++;
			d[i].dgt4=sep(i,4);
			if(d[i].dgt4==2) ans++;
			d[i].dgt5=sep(i,5);
			if(d[i].dgt5==2) ans++;
		}else if(100000<=i&&i<=999999){
			d[i].dgt1=sep(i,1);
			if(d[i].dgt1==2) ans++;
			d[i].dgt2=sep(i,2);
			if(d[i].dgt2==2) ans++;
			d[i].dgt3=sep(i,3);
			if(d[i].dgt3==2) ans++;
			d[i].dgt4=sep(i,4);
			if(d[i].dgt4==2) ans++;
			d[i].dgt5=sep(i,5);
			if(d[i].dgt5==2) ans++;
			d[i].dgt6=sep(i,6);
			if(d[i].dgt6==2) ans++;
		}
	}
	cout<<ans;
	
	return 0;
}

回复

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

正在加载回复...