1 条题解

  • 0
    @ 2025-10-8 16:54:33
    #include<bits/stdc++.h>
    using namespace std;
    int f[11110000];//f[i]表示i在l~r进制中是多少重 
    int len(int x, int d)
    {
    	if(x==0) return 1;
    	int t=0;while(x>0)x=x/d,t++;
    	return t;
    }
    int main()
    {
        int l, r, x, y, k;scanf("%d%d%d%d%d", &l, &r, &x, &y, &k);
        memset(f, 0, sizeof(f));
        for(int i=l;i<=r;i++)
        {
        	int L1=len(x,i), L2=len(y,i);
        	for(int a1=1;a1<i;a1++)for(int a2=0;a2<i;a2++)if(a1!=a2)//枚举a[1]和a[2]
    		for(int L=L1;L<=L2;L++)
    		{
    			int s=0;for(int Li=1;Li<=L;Li++)s=s*i+(Li&1?a1:a2);
    			if(s<=y)f[ s ]++; 
    		}
        }
        for(int i=x;i<=y;i++) if(f[i]==k) printf("%d\n",i);
        return 0;
    }
    
    • 1

    信息

    ID
    858
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    107
    已通过
    40
    上传者