2 条题解
-
0
Guest
-
1
大重载照亮世界,int128没有输入那就给他写个输入(其实和函数一样)
#include<bits/stdc++.h> using namespace std; __int128 a,b,l,g,ans; istream&operator>>(istream &is,__int128 &n){ string s; is>>s; n=0; for(char i:s) n=n*10+i-'0'; return is; } ostream&operator<<(ostream &is,__int128 &n){ string s; while(n){ s+='0'+n%10; n/=10; } reverse(s.begin(),s.end()); return is<<s; } __int128 gcd(__int128 a,__int128 b){ return a%b==0?b:gcd(b,a%b); } int main(){ freopen("easy.in","r",stdin); freopen("easy.out","w",stdout); cin>>a>>b; g=gcd(a,b); l=a/gcd(a,b)*b; ans=g^l; cout<<ans<<endl; return 0; }
-
1
难点在于
__int128
需要快读快写。#include<bits/stdc++.h> using namespace std; __int128 read(){ __int128 flag=1,num=0; char cum=getchar(); while(cum<'0'||cum>'9'){ if(cum=='-') flag=-1; cum=getchar(); } while(cum>='0'&&cum<='9'){ num=(num<<3)+(num<<1)+(cum-'0'); cum=getchar(); } return flag*num; } void write(__int128 sum){ if(sum>=10){ write(sum/10); printf("%d",(int)(sum%10)); } else printf("%d",(int)sum); } __int128 gcd(__int128 a,__int128 b){ return a%b==0?b:gcd(b,a%b); } int main(){ freopen("easy.in","r",stdin); freopen("easy.out","w",stdout); __int128 a=read(),b=read(); __int128 g=gcd(a,b),l=a/gcd(a,b)*b; __int128 ans=g^l; write(ans); return 0; }
- 1
信息
- ID
- 766
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 109
- 已通过
- 4
- 上传者