Đề bài: Cho số n, in ra số các số trong đoạn [1;n] chia hết cho 1 trong 4 số: 2,3,11,13.
Lời giải:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
template <class T> T gcd (T a, T b) { while (b) { T r = a % b; a = b; b = r; } return a; }
template <class T> T lcm (T a, T b) { return a / gcd (a, b) * b; }
long long sum=0;
long long num;
void solve(vector<long long> & v){
int N=v.size();
for(int i=1;i<(1<<N);i++){
ll ct=1;
for(int k=0;k<N;k++)if( i & (1<<k) ) ct=lcm(ct,v[k]);
if(1 & __builtin_popcount(i))sum+=num/ct;
else sum-=num/ct;
}
}
int main(){
vector<long long> v={2,3,11,13};
cin>>num;
solve(v);
ll res=gcd(sum,num);
cout<<sum/res<<' '<<num/res;
return 0;
}
Đăng ký:
Đăng Nhận xét (Atom)
Bài G - Educatioal Round 62
Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...
-
Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=50 Sol: ...
-
MERGENUM - Ghép số Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 mega...
-
Valera rất quan tâm đến phép thuật. Phép thuật thu hút anh ta đến mức anh ta nhìn thấy nó ở khắp mọi nơi. Ông giải thích bất kỳ hiện tượng k...
Không có nhận xét nào:
Đăng nhận xét