隐藏页面特效

济南-1103试题解题报告

济南-1103试题解题报告

By shenben

 

上午

T1代码:

 

#include<cstdio> #include<cstring> using namespace std; unsigned int p,z,n,v[66000]; char c; #define name "ab" int main(){ for(int l=1;;l++){ memset(v,0,sizeof v); freopen(name".in","r",stdin); for(p=0,z=(1u<<l)-1,c=getchar();c>32;c=getchar(),n++){ p=((p<<1)|(c=='B'))&z; if(n>l) v[p/32]|=1u<<(p%32); } for(p=0;p<(1<<l);p++){ if(!(v[p/32]>>(p%32)&1)){ freopen(name".out","w",stdout); for(int i=l;i;i--) putchar('A'+(p>>(i-1)&1)); return 0; } } } return 0; } /* //copy from ylf's AC code //答案很短 很短 //直接搜 不过 检验的时候很慢... //预处理所有的子串 存好了就可以O(1)的检验了 //因为只有AB 可以用位运算优化 #include<cstdio> #include<cmath> #include<cstring> #define maxn (1<<22)+10 using namespace std; int n,m,f[maxn],sum,falg,ans; char s[maxn]; void dfs(int now,int x){ if(falg) return; if(now==sum+1){ if(f[x]==0){ ans=x;falg=1; } return; } dfs(now+1,x); dfs(now+1,x+(1<<now-1)); } int main(){ freopen("ab.in","r",stdin); freopen("ab.out","w",stdout); scanf("%s",s); n=strlen(s);m=log(n)/log(2)+1; for(int i=0;i<n;i++){ int x=0; for(int j=1;j<=m;j++){ if(i+j-1>n) break; if(s[i+j-1]=='B') x+=(1<<j-1); f[x+(1<<j)]=1; } } for(sum=1;sum<=m;sum++){ dfs(1,1<<sum); if(falg) break; } for(int i=0;i<sum;i++) printf(ans&(1<<i)?"B":"A"); fclose(stdin); fclose(stdout); return 0; } */

 

 

 

T2代码:

//评测时需要额外开栈 #pragma comment(linker,"/STACK:102400000,102400000") #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=5e6; bool pd[N+1]; int p[N+1],c[N+1]; int maxc(int x){ if(x<=N)return c[x]; int ans=x; for(int i=1;p[i]*p[i]<=x;i++) if(x%p[i]==0){while(x%p[i]==0)x/=p[i];ans=p[i];} return max(ans,x); } int get(int x,int y,int b){ if(x>y) return 0; if(b==0) return x==1; if(y<=p[b]) return y-x+1; if(x==y) return maxc(x)<=p[b]; return get(x,y,b-1)+get((x-1)/p[b]+1,y/p[b],b); } int main(){ freopen("prime.in","r",stdin); freopen("prime.out","w",stdout); int n,m,b; scanf("%d%d%d",&b,&n,&m); c[1]=1; for(int i=2;i<=N;i++){ if(!pd[i])p[++p[0]]=i,c[i]=i; for(int j=1,t;j<=p[0]&&(t=p[j]*i)<=N;j++){ pd[t]=1; c[t]=max(c[i],p[j]); if(i%p[j]==0)break; } } printf("%d\n",m-n+1-get(n,m,upper_bound(p+1,p+1+p[0],b)-p-1)); fclose(stdin); fclose(stdout); return 0; }

 

 

T3代码:

 

补上题目:

 

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/6036333.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示