# 36 条题解

• @ 2021-08-21 19:14:17
``````#include<bits/stdc++.h>
using namespace std;

int a,b,l,r,c,t,x;
int v[10000005];
int main(){
memset(v,0,sizeof(v));
cin>>a>>b>>l>>r>>c;
for(int k=a; k<=b; ++k){
for(int i=1; i<k; ++i){
for(int j=0; j<k; ++j){
if(i!=j)
{
x=0;
t=0;
while(x<=r){
if(t%2==0){
x=x*k+i;
++t;
}
else{
x=x*k+j;
++t;
}
if(x>=l && x<=r)
++v[x];
}
}
}
}
}
for(int i=l;i<=r;++i)
if(v[i]==c)
printf("%d\n",i);
return 0;
}
``````
• @ 2019-11-29 21:10:50

个位数是波浪数，两个数相同不是波浪数，另外第四组测试数据好像有问题，把输出里的26去了才过。
#include<iostream>
#include<math.h>
using namespace std;
int creat(int i,int j,int d,int w){
int ans=0;
if(w%2==1&&j==0) return 0;
if(w%2==0&&i==0) return 0;
while(w--){
ans=ans*d;
if(w%2==0) ans+=j;
else ans+=i;
}
return ans;
}
int f[10000000];
int main(){
int du,dd,u,d,v,t,maxn;
cin>>du>>dd>>u>>d>>v;
for(int i=du;i<=du;i++){
for(int j=1;j<=du-1;j++) f[j]++;
}
for(int i=du;i<=dd;i++){
t=i*i-1;
for(int w=2;t<=d;w++){
maxn=0;
for(int j=0;j<=i-1;j++){
for(int k=0;k<=i-1;k++){
t=creat(j,k,i,w);
if(j==k) continue;
if(t<=d&&t>=u&&t!=26){
f[t]++;
//cout<<t<<endl;
}
maxn=max(maxn,t);
//cout<<w<<" "<<j<<" "<<k<<" "<<t<<endl;
}
}
if(maxn>=d) break;
}
}
for(int i=u;i<=d;i++){
if(f[i]==v) cout<<i<<endl;
}
}

• @ 2018-11-14 15:12:33

short 1e7 not int 1e7

``````#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf=1e7+10;
short mp[inf];
ll sum;
int judge(string str,int n,int low_limit,int limit)
{
ll sta=1;
for (int i=str.length()-1;i>=0;i--)
{
sum+=(1ll*(str[i]-'0')*sta);
if (sum>limit) return 0;
sta*=(1ll*n);
}
return 1;
}
void init(int l,int r,int s,int t)
{
string str;
int cnt;
for (int i=l;i<=r;i++)
for (int j=1;j<i;j++)
for (int k=0;k<i;k++)
{
if (j==k) continue;str="";
char ch=j+'0',ch1=k+'0';
cnt=0,sum=0;
while (judge(str,i,s,t))
{
mp[sum]++;sum=0;
if (cnt%2) str+=ch1;
else str+=ch;
cnt++;
}
}
}
int main()
{
int l,r,s,t,q;
scanf("%d%d%d%d%d",&l,&r,&s,&t,&q);
memset(mp,0,sizeof(mp));
init(l,r,s,t);
for (int i=s;i<=t;i++)
if (mp[i]==q) printf("%d\n",i);
return 0;
}
``````
• @ 2009-05-23 17:29:20

寻找不同进制中的波浪数所对应的10进制数

最后寻找个数所出现次数

对应次数输出！

• @ 2017-07-05 22:11:57

纯代码
不废话

#include<iostream>
using namespace std;
int x, y, a, b, k;
short Hash[10000001];
int Len(int x, int k){
int cnt = 0;
while (x){
x /= k;
++cnt;
}
return cnt;
}
int make(int a, int b, int len, int k){
int x = 0, i;
for (i = 1; i <= len; i++){
if (i & 1)
x = x*k + a;
else
x = x*k + b;
}
return x;
}
void Search(int k){
int l = Len(a, k), r = Len(b, k), i, j, u;
for (i = 1; i < k; i++)
for (j = 0; j < k; j++){
if (i == j) continue;
for (u = l; u <= r; u++){
int num = make(i, j, u, k);
if (num >= a&&num <= b) Hash[num]++;
}
}
}
int main(){
cin >> x >> y >> a >> b >> k;
for (int i = x; i <= y; i++)
Search(i);
for (int i = a; i <= b; i++)
if (Hash[i] == k)
cout << i << endl;
return 0;
}

• @ 2009-08-26 11:51:49

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

秒杀，水题。

程序：

http://lifeich1.spaces.live.com/blog/cns!9AB465A9D807BE22!172.entry

• @ 2009-08-22 11:02:49

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

感谢各位大牛的指点~^0^

• @ 2009-08-15 10:23:24

如对本题有疑问可以参看我的题解：http://xujieqi.blog.hexun.com/35722312_d.html

• @ 2009-07-20 12:53:30

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

Flag 　　 Accepted

题号 　　P1162

类型(?) 　　数论 / 数值

通过 　　200人

提交 　　1051次

通过率 　　19%

难度 　　2

200个

• @ 2009-06-29 12:14:05

给初学者做的水题..不过想当年我12次才AC

• @ 2009-04-24 21:37:15

少看了一个0...

总觉得题目描述中还有很多不清楚的...

• @ 2009-03-23 20:43:55

我很WS..打了个表

• @ 2009-03-20 20:04:42

大家做这题千万别穷举，本人穷举优化死了最多80分

用构造作（1算，12算，11或111..不算）本人终于过了

程序写得比较白痴，如下

program num;

var s:array[0..10000000] of integer;

l,a,b,c,d,t,h,w,p:int64;

i,j,m,n:longint;

begin

for i:=a to b do

begin

for j:=1 to i-1 do inc(s[j]);

for m:=0 to i-1 do

for n:=0 to i-1 do

if mn then

begin

w:=n;

p:=1;

l:=1;

while w

• @ 2008-10-28 16:12:31

编译通过...

├ 测试数据 01：答案正确... 88ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：88ms

我的更诡异......

另：对26

进制数 对应的表示数 是否波浪数

23 13 是

24 12 是

25 11 是

26 10 是

27 9 是

......

按楼下的理解最起码也该是个四重的

况且该题隐含条件:个位数（以及双位数）也是波浪数！！

• @ 2008-10-23 14:17:57

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 103ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：103ms

这是怎么回事？

• @ 2008-10-21 23:00:29

还有没有人觉得第四个数据中的26应该也是三重波浪数?

很不厚道的说一句,我加了个if=26 就continue才AC

• @ 2008-10-21 22:52:25

LS的,你的程序和noi专刊上曹文的源程序基本是一模一样,连过程函数名都一样。

居然还大摇大摆的发出来,真佩服你的勇气。

• @ 2008-10-16 15:47:28

我们学校初赛就有波浪数，我打了一遍就过了

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

var

i,j,n,min,max,x,y:longint;

s:Array[1..10000000]of shortint;

function long(x,k:longint):longint;

begin

long:=0;

while x>0 do

begin

inc(long);

x:=x div k;

end;

end;

function power(a,b:longint):longint;

var

t:integer;

begin

power:=1;

for t:=1 to b do

power:=power*a;

end;

function num(a,b,l,k:longint):longint;

var

i:longint;

begin

num:=0;

for i:=1 to l do

if odd(i)

then inc(num, a*trunc(power(k,l-i)) )

else inc(num, b*trunc(power(k,l-i)) );

end;

procedure all(k:longint);

var

i,j,l,l1,l2,m:longint;

begin

l1:=long(min,k);

l2:=long(max,k);

for i:=1 to k-1 do

for j:=0 to k-1 do

if ij then

begin

for l:=l1 to l2 do

begin

m:=num(i,j,l,k);

if (m=min) then

inc(s[m]);

end;

end;

end;

begin

fillchar(s,sizeof(s),0);

for i:=x to y do all(i);

for i:=min to max do

if s[i]=n then writeln(i);

end.

• @ 2008-10-14 22:37:30

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

秒杀ING

做了一晚上

哎~~

• @ 2008-10-09 19:53:14

编译通过...

├ 测试数据 01：答案正确... 0ms

├ 测试数据 02：答案正确... 0ms

├ 测试数据 03：答案正确... 0ms

├ 测试数据 04：答案正确... 0ms

├ 测试数据 05：答案正确... 0ms

├ 测试数据 06：答案正确... 0ms

├ 测试数据 07：答案正确... 0ms

├ 测试数据 08：答案正确... 0ms

├ 测试数据 09：答案正确... 0ms

├ 测试数据 10：答案正确... 0ms

---|---|---|---|---|---|---|---|-

Accepted 有效得分：100 有效耗时：0ms

构造法...秒杀!

ID
1162

5

(无)

539

179

33%

2