求助91分
  • 板块P1112 波浪数
  • 楼主zlttcl
  • 当前回复21
  • 已保存回复21
  • 发布时间2022/8/26 20:34
  • 上次更新2023/10/27 13:32:42
查看原帖
求助91分
555381
zlttcl楼主2022/8/26 20:34

RT,代码如下:

#include <bits/stdc++.h>
using namespace std;
int a[33][1000],c[5000];
int r,b,x,y,que;
inline bool pd(int y) {
	for(int i=3; i<=c[y]; i++)
		if(a[y][i]!=a[y][i-2]||a[y][i]==a[y][i-1]) return 0;
	return 1;
}
inline void fun() {
	for(int i=r; i<=b; i++) {
		++a[i][1];
		int y=1;
		while(a[i][y]>=i) {
			a[i][y+1]+=a[i][y]/i;
			a[i][y]%=i;
			y++;
		}
		if(y>c[i]) c[i]=y;
	}
}
signed main() {
	cin>>r>>b>>x>>y>>que;
	for(int i=r; i<=b; i++) {
		int m=x,j=0;
		while(m) {
			a[i][++j]=m%i;
			m/=i;
		}
		c[i]=j;
	}
	long long s=x;
	for(int i=1; i<=y-x+1; i++) {
		int sum=0;
		for(int j=r; j<=b; j++)
			if(pd(j)) sum++;
		if(sum==que) cout<<s<<endl;
		fun();
		++s;
	}
	return 0;
}

2022/8/26 20:34
加载中...