- #include <bits/stdc++.h>
- using namespace std;
- #define llu long long unsigned
- int main(){
- int ts;
- scanf("%d", &ts);
- for(int p = 1; p <= ts; p++){
- int n;
- scanf("%d", &n);
- llu sum = 0;
- int m = sqrt(n);
- for(int i = 1; i<= m; i++) sum += (n/i);
- for(int i = 1; i<= m; i++){
- sum+= ((n/i)-(n/(i+1)))*i;
- }
- if(m==n/m) sum -= m;
- printf("Case %d: %llu\n",p, sum);
- }
- return 0;
- }
Showing posts with label Number Theory. Show all posts
Showing posts with label Number Theory. Show all posts
Saturday, 29 July 2017
Lightoj 1245 - Harmonic Number (II)
Lightoj 1213 - Fantasy of a Summation
- #include <bits/stdc++.h>
- using namespace std;
- #define llu long long unsigned
- long long mod_pow(long long b, long long e, long long m) {
- long long ans = 1;
- while (e > 0) {
- if (e & 1)
- ans = (ans * b) % m;
- b = (b * b) % m;
- e >>= 1;
- }
- return ans;
- }
- int main(){
- int ts;
- scanf("%d", &ts);
- for(int p = 1; p <= ts; p++){
- llu sum = 0, n, k, m;
- scanf("%llu%llu%llu",&n, &k, &m);
- for(llu i =0; i <n; i++){
- llu a;
- scanf("%llu", &a);
- sum+= a;
- }
- llu ans = k;
- ans = (ans*(mod_pow(n, k-1, m)))%m;
- //cout<<"ans = "<<sum<<endl;
- ans = (ans*sum)%m;
- printf("Case %d: %llu\n",p, ans);
- }
- return 0;
- }
Lightoj 1170 - Counting Perfect BST
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long unsigned
- #define N 10000000000
- #define M 100000007
- ll numbers[1000006];
- int cnt = 0;
- void generate_num(){
- ll mul;
- for(ll i = 2; i <= 1000005; i++){
- mul = i*i;
- //printf("mul = %llu\n", mul);
- while(mul<= N){
- numbers[cnt++] = mul;
- mul = mul*i;
- }
- }
- sort(numbers, numbers+cnt);
- cnt = unique(numbers, numbers+cnt) - numbers;
- numbers[cnt++] = 1000000000000000;
- //cout<<"count = "<<cnt<<endl;
- //for(int i = 0; i <100; i++) cout<<numbers[i]<<" ";
- }
- ll fact[1000005];
- ll bigmod(ll p, ll q){
- if(q == 1) return p%M;
- if(q%2 == 0){
- ll a = bigmod(p, q/2);
- return ((a%M)*(a%M))%M;
- }
- else{
- ll a = bigmod(p, q-1);return (a*p)%M;
- }
- }
- void pre(){
- fact[0] = 1;
- for(int i = 1; i <1000005; i++) fact[i] = (i*(fact[i-1]%M))%M;
- }
- int main(){
- generate_num();
- pre();
- int ts;
- scanf("%d", &ts);
- for(int k = 1; k <= ts; k++){
- ll a, b;
- scanf("%llu%llu", &a, &b);
- int l = lower_bound(numbers, numbers+cnt, a)-numbers;
- int r = upper_bound(numbers, numbers+cnt, b)-numbers;
- int elements = r-l;
- if(elements == 0){
- printf("Case %d: 0\n", k);
- continue;
- }
- ll s = bigmod((fact[elements+1]*fact[elements])%M,M-2)%M;
- ll p = (fact[2*elements]*s)%M;
- printf("Case %d: %llu\n", k,p);
- }
- return 0;
- }
1189 - Sum of Factorials
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long unsigned
- #define N 66
- ll fac[N];
- void pre(){
- fac[0] = 1;
- for(int i = 1; i <N; i++) fac[i] = fac[i-1]*i;
- }
- int main(){
- pre();
- int ts;
- scanf("%d", &ts);
- for(int p = 1;p<= ts; p++){
- ll ans;
- scanf("%llu", &ans);
- vector<int> a;
- for(int i = N-1; i>= 0; i--) {
- if(ans>= fac[i]){
- ans = ans-fac[i];
- a.push_back(i);
- }
- }
- if(ans == 0){
- printf("Case %d: ", p);
- sort(a.begin(), a.end());
- for(int i = 0; i <a.size()-1; i++) printf("%d!+", a[i]);
- printf("%d!\n", a[a.size()-1]);
- }
- else printf("Case %d: impossible\n", p);
- }
- //for(int i = 0; i <N; i++) cout<<fac[i]<<" ";
- return 0;
- }
Lightoj 1095 - Arrange the Numbers
- #include <bits/stdc++.h>
- using namespace std;
- #define MOD 1000000007
- #define N 1005
- #define ll long long unsigned
- ll fac[N];
- ll dp[N][N];
- int pre(){
- fac[0] = 1;
- for(int i = 1; i <N; i++) fac[i]= (fac[i-1]*i)%MOD;
- memset(dp, -1, sizeof(dp));
- }
- ll ncr(int n, int k){
- if(k==1) return n;
- if(n==k) return 1;
- if(dp[n][k]!=-1) return dp[n][k];
- return dp[n][k]= (ncr(n-1,k-1)+ncr(n-1,k))%MOD;
- }
- int main(){
- pre();
- int ts;
- scanf("%d", &ts);
- for(int p =1;p <= ts; p++){
- int n, m, k;
- scanf("%d%d%d", &n, &m, &k);
- ll ans1 = ncr(m, k);
- ll ans2 = fac[n-k];
- for(int i = 1; i <= m-k; i++){
- if(i%2) ans2-= (ncr(m-k, i)*fac[n-k-i])%MOD;
- else ans2+= (ncr(m-k, i)*fac[n-k-i])%MOD;
- ans2 = (ans2+MOD)%MOD;
- }
- printf("Case %d: %llu\n",p, (ans1*ans2)%MOD);
- }
- return 0;
- }
Lightoj 1102 - Problem Makes Problem
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long int
- #define M 1000000007
- #define N 2000006
- ll fact[N];
- ll bigmod(ll p, ll q){
- if(q == 1) return p%M;
- if(q%2 == 0){
- ll a = bigmod(p, q/2);
- return ((a%M)*(a%M))%M;
- }
- else {ll a = bigmod(p, q-1);return (a*p)%M;}
- }
- void pre(){
- fact[0] = 1;
- for(int i = 1; i <N; i++) fact[i] = (i*(fact[i-1]%M))%M;
- }
- int main(){
- pre();
- int ts;
- scanf("%d", &ts);
- for(int k = 1; k <= ts; k++){
- int n, r;
- scanf("%d%d", &n, &r);
- ll s = bigmod((fact[n]*fact[r-1])%M,M-2)%M;
- ll p = (fact[n+r-1]*s)%M;
- printf("Case %d: %lld\n", k,p);
- }
- return 0;
- }
- /*
- using namespace std;
- #include <bits/stdc++.h>
- const long long mod = 1000000007ll;
- const int mn = 2000002;
- long long fact[mn];
- long long mod_pow(long long b, long long e, long long m) {
- long long ans = 1;
- while (e > 0) {
- if (e & 1)
- ans = (ans * b) % m;
- b = (b * b) % m;
- e >>= 1;
- }
- return ans;
- }
- void solve() {
- long long n, k;
- cin >> n >> k;
- long long num = fact[n + k - 1];
- long long den = (fact[n] * fact[k - 1]) % mod;
- printf("%lld\n", (num * mod_pow(den, mod - 2, mod)) % mod);
- }
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- fact[0] = 1;
- for (int i = 1; i < mn; ++i) {
- fact[i] = (i * fact[i - 1]) % mod;
- }
- int tc;
- cin >> tc;
- for (int i = 0; i < tc; ++i) {
- printf("Case %d: ", i + 1);
- solve();
- }
- return 0;
- }
- */
Subscribe to:
Posts (Atom)
Most Featured Post
Lightoj 1159 - Batman
http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...
-
Problem link: Problem Analysis: It is actually a basic Bisection problem , as we can see here we can not actually find a formula fo...
-
http://lightoj.com/volume_showproblem.php?problem=1032 #include <bits/stdc++.h> using namespace std ; #define ll long lo...