acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • 题解(A21117.外星人)

    C版: #include<bits/stdc.h> #define ll long long #define N 100005 using namespace std; int T,n,x,y; ll ans=1; ll phi[N],prim[N],prinum; bool isprim[N]; void Ls() { phi[1]=1; for(register int i=2;i<=100005;++i) { if(!isprim[i]) prim[++prinum]=i,phi[i]=phi[i-1]; for(register int j=1;j<=prinum&&prim[j]*i<=100005;++j) { isprim[prim[j]*i]=true; phi[prim[j]*i]=phi[prim[j]]+phi[i]; if(!(i%prim[j])) break; } } return; } template<class T>inline void read(T &res) { char c;T flag=1; while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;res=c-'0'; while((c=getchar())>='0'&&c<='9')res=res10+c-'0';res=flag; } int main() { Ls(); read(T); while(T--) { read(n); for(register int i=1;i<=n;++i) { read(x);read(y); if(x==2) ans--; ans+=phi[x]*y; } printf("%lld\n",ans); ans=1; } return 0; }

    userId_undefined

    wy

    12阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页