36 条题解
-
1aph。 (chenqianrong) LV 10 @ 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; }
-
12019-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;
}
} -
02018-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; }
-
02009-05-23 17:29:20@
寻找不同进制中的波浪数所对应的10进制数
最后寻找个数所出现次数
对应次数输出! -
-12017-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;
} -
-12009-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 -
-12009-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^ -
-12009-08-15 10:23:24@
如对本题有疑问可以参看我的题解:http://xujieqi.blog.hexun.com/35722312_d.html
-
-12009-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 有效耗时:0msFlag Accepted
题号 P1162
类型(?) 数论 / 数值
通过 200人
提交 1051次
通过率 19%
难度 2200个
-
-12009-06-29 12:14:05@
给初学者做的水题..不过想当年我12次才AC
-
-12009-04-24 21:37:15@
少看了一个0...
总觉得题目描述中还有很多不清楚的... -
-12009-03-23 20:43:55@
我很WS..打了个表
-
-12009-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
readln(a,b,c,d,t);
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 -
-12008-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 是
......按楼下的理解最起码也该是个四重的
况且该题隐含条件:个位数(以及双位数)也是波浪数!! -
-12008-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这是怎么回事?
-
-12008-10-21 23:00:29@
还有没有人觉得第四个数据中的26应该也是三重波浪数?
很不厚道的说一句,我加了个if=26 就continue才AC -
-12008-10-21 22:52:25@
LS的,你的程序和noi专刊上曹文的源程序基本是一模一样,连过程函数名都一样。
居然还大摇大摆的发出来,真佩服你的勇气。 -
-12008-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 有效耗时:0msvar
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
readln(x,y,min,max,n);
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. -
-12008-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
做了一晚上
哎~~ -
-12008-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
构造法...秒杀!