#include<cstdio>#include<iostream>#define RI register int#define CI const intusingnamespace std;
int ans=0;
intmain(){
for (RI i=1;i<=2020;++i)
{
int x=i; while (x) ans+=x%10==2,x/=10;
}
returnprintf("%d",ans),0;
}
3|0既约分数
直接枚举,答案2481215
#include<cstdio>#include<iostream>#define RI register int#define CI const intusingnamespace std;
int ans=0;
inlineintgcd(CI n,CI m){
return m?gcd(m,n%m):n;
}
intmain(){
for (RI i=1;i<=2020;++i) for (RI j=1;j<=2020;++j)
if (gcd(i,j)==1) ++ans; returnprintf("%d",ans),0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const intusingnamespace std;
int c[10],g[10][10],fa[10],ans;
inlineintgetfa(CI x){
return fa[x]!=x?fa[x]=getfa(fa[x]):x;
}
inlinevoidDFS(CI now=1){
if (now>7)
{
bool flag=1; RI i,j; for (i=1;i<=7;++i) fa[i]=i;
for (i=1,j;i<=7;++i) for (j=1;j<=7;++j)
if (i!=j&&c[i]&&c[j]&&g[i][j]) fa[getfa(i)]=getfa(j);
for (i=1;i<=7;++i) for (j=1;j<=7;++j)
if (i!=j&&c[i]&&c[j]) flag&=getfa(i)==getfa(j);
ans+=flag; return;
}
c[now]=1; DFS(now+1); c[now]=0; DFS(now+1);
}
intmain(){
g[1][2]=g[1][6]=1; g[2][1]=g[2][7]=g[2][3]=1;
g[3][2]=g[3][4]=g[3][7]=1; g[4][3]=g[4][5]=1;
g[5][4]=g[5][6]=g[5][7]=1; g[6][1]=g[6][5]=g[6][7]=1;
g[7][2]=g[7][3]=g[7][5]=g[7][6]=1;
returnDFS(),printf("%d",ans-1),0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
int n,mi=100,mx,avg,x;
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; for (scanf("%d",&n),i=1;i<=n;++i)
scanf("%d",&x),mi=min(mi,x),mx=max(mx,x),avg+=x;
returnprintf("%d\n%d\n%.2lf",mx,mi,1.0*avg/n),0;
}
8|0回文日期
SB题,按题意模拟即可,注意要处理闰年
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
inlinebooljudge(CI x){
return x%400==0||(x%4==0&&x%100!=0);
}
int st,y,m,d,ans1,ans2;
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout);for (scanf("%d",&st),y=st/10000,m=st/100%100,d=st%100;;)
{
if (++d>day[m-1]+(m==2&&judge(y))) if (++m,d=1,m>12) ++y,m=1;
int A=m/10,B=m%10,C=d/10,D=d%10;
if (D*1000+C*100+B*10+A==y)
{
if (!ans1) ans1=y*10000+m*100+d;
if (A==C&&B==D) { ans2=y*10000+m*100+d; break; }
}
}
returnprintf("%d\n%d",ans1,ans2),0;
}
#include<cstdio>#include<iostream>#include<cstring>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
char s[N]; int n,lst[26],pre[N]; longlong ans;
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; for (scanf("%s",s+1),n=strlen(s+1),i=1;i<=n;++i)
pre[i]=lst[s[i]-'a'],lst[s[i]-'a']=i;
for (i=0;i<26;++i) lst[i]=n+1;
for (i=n;i;--i) ans+=1LL*(i-pre[i])*(lst[s[i]-'a']-i),lst[s[i]-'a']=i;
returnprintf("%lld",ans),0;
}
#include<cstdio>#include<iostream>#include<cstring>#define RI register int#define CI const int&usingnamespace std;
constint N=150;
int tot,n,ret,bkt[N],f[N][26][N]; char ans[N];
inlineintcheck(CI n){
RI i,j,k; for (memset(f,0,sizeof(f)),i=0;i<26;++i) f[1][i][1]=bkt[i];
for (i=1;i<n;++i) for (j=0;j<26;++j) for (k=1;k<=i;++k)
{
f[i+1][j][k+1]=max(f[i+1][j][k+1],f[i][j][k]+i-k+bkt[j]);
if (j) f[i+1][j-1][1]=max(f[i+1][j-1][1],f[i][j][k]+i+bkt[j-1]);
}
int cur=0; for (j=0;j<26;++j) for (k=1;k<=n;++k)
cur=max(cur,f[n][j][k]); return cur;
}
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i,j,k; for (scanf("%d",&tot),i=1;;++i) if (check(i)>=tot) { n=i; break; }
for (i=1;i<=n;++i) for (j=0;j<26;++j)
{
for (ret+=bkt[j],k=0;k<j;++k) ++bkt[k];
if (check(n-i)+ret>=tot) { ans[i]=j+'a'; break; }
for (ret-=bkt[j],k=0;k<j;++k) --bkt[k];
}
for (i=1;i<=n;++i) putchar(ans[i]); return0;
}
#include<cstdio>#include<iostream>#include<cstring>#define RI register int#define CI const int&usingnamespace std;
constint N=150;
int tot,n,ret,bkt[N],c[26]; char ans[N];
inlineintcheck(CI n,int cur=0){
RI i,j; for (memset(c,0,sizeof(c)),i=1;i<=n;++i)
{
int mx=-1,pos=0; for (j=0;j<26;++j)
if (i-1-c[j]+bkt[j]>mx) mx=i-1-c[j]+bkt[j],pos=j;
cur+=mx; ++c[pos];
}
return cur;
}
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i,j,k; for (scanf("%d",&tot),i=1;;++i) if (check(i)>=tot) { n=i; break; }
for (i=1;i<=n;++i) for (j=0;j<26;++j)
{
for (ret+=bkt[j],k=0;k<j;++k) ++bkt[k];
if (check(n-i)+ret>=tot) { ans[i]=j+'a'; break; }
for (ret-=bkt[j],k=0;k<j;++k) --bkt[k];
}
for (i=1;i<=n;++i) putchar(ans[i]); return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理