• Tìm kiếm nhị phân (cách làm của 10 Tin)

    admin - 17/11/2018

    #include <iostream>
    #include<stdio.h>
    using namespace std;
    int n;long long k, a[1000001];
    void vaora()
    {
        freopen("timkiem.inp","r",stdin);
        freopen("timkiem.out","w",stdout);
    }
    void nhapmang()
    {
        cin>>n>>k;
        for(int i=1;i<=n;i++)
            cin>>a[i];
    }
    void tknp(int l, int h)
    {  if(l>h) {cout<<"NO"; return;}
       int mid=(l+h)/2;
       if(a[mid]==k) {cout<<"YES"; return;}
       if(a[mid]>k) tknp(l,mid-1);
       else tknp(mid+1,h);
    }
    int main()
    {
        vaora();
        nhapmang();
        tknp(1,n);
        return 0;
    }

     

    (xem thêm)

    (0 phản hồi)

  • Ví dụ tổng các chữ số của tập con của một tập hợp

    admin - 03/11/2018

    #include <iostream>
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    //Tong d(1,i-1)+a[i]=d(1,i) if a[i] xuat hien
    //Tong(d(1,i-1)=d(1,i) if a[i] khong xuat hien
    long long a[1000],b[1000],n,chiso=0;
    void enter()
    {
        freopen("tong.inp","r",stdin);
        freopen("tong.out","w",stdout);
    }
    void nhap()
    {  cin>>n;
        for(int i=1;i<=n;i++)
                cin>>a[i];
    }
    void f(int i,long long sum)
    {
        if(i==n+1) {chiso++;
        b[chiso]=sum;
        return;}
        f(i+1,sum+a[i]);
        f(i+1,sum);
    }
    int main()
    { enter();
    nhap();
    f(1,0);
    sort(b+1,b+chiso+1);
    for(int i=1;i<=chiso;i++)
      &... (xem thêm)

    (0 phản hồi)

  • Chữa bài Mảng một chiều chia 3_2-Dạng toán đếm tổ hợp

    admin - 08/10/2018

    #include <iostream>
    using namespace std;

    int n;
    //a[0] la so luong cac phan tu chia het cho 3
    //a[1] la so luong cac phan tu chia 3 du 1
    //a[2] la so luong cac phan tu chia 3 du 2
    long long a[3];

    int main() {
        cin >> n;
        for (int i = 0; i < n; ++i) {
            int val;
            cin >> val;
            a[val % 3] += 1;
        }
        cout << a[0] * (a[0] - 1) / 2 + a[1] * a[2] << "\n";
    }

    (xem thêm)

    (0 phản hồi)

  • Chữa bài Mảng một chiều-Thuật toán sàng số nguyên tố

    admin - 08/10/2018

    #include <bits/stdc++.h>
    #define ll long long int
    #define mod 1000000007
    #define llt ll t;cin>>t;while(t--)
    #define pb push_back
    #define fi first
    #define se second
    #define mkp make_pair
    #define all(v) v.begin(),v.end()
    #define allr(v) v.rbegin(),v.rend()
    #define rep(i,a,b) for (ll i = a; i<b; ++i)
    using namespace std;
    ll n;
    //Neu i la so nguyen to thi prime[i]=true
    //Neu i khong la so nguyen to thi prime[i]=false
    bool prime[1000001];
    int main()
    { cin>>n;
    //Khoi tao prime[i] =true, nghia la gia su ban dau i la so nguyen to
    memset(prime, true, sizeof(prime));
    prime[0] = false;
    prime[1] = false;
    for(ll i=2;i<=sqrt(n);i++){
            if(prime[i]==true)
            for(ll j = i*i;j<=n;j+=i)
                      &nb... (xem thêm)

    (2 phản hồi)

  • Sinh hoán vị bằng hàm next_permutation

    admin - 08/10/2018

    // next_permutation example
    #include <iostream>     // std::cout
    #include <algorithm>    // std::next_permutation, std::sort
    using namespace std;
    int a[] = {3,2,1};
    int main () {
      sort (a,a+3);
      do {
        cout << a[0] << ' ' <<a[1] << ' ' <<a[2] << '\n';
      } while ( next_permutation(a,a+3) );
    cout << "After loop: " << a[0] << ' ' << a[1] << ' '
     << a[2] << '\n';

      return 0;
    }

    (xem thêm)

    (1 phản hồi)

  • Sắp xếp theo hàm

    admin - 08/10/2018

    // next_permutation example
    #include <iostream>     // std::cout
    #include <algorithm>    // std::next_permutation, std::sort
    using namespace std;
    int a[] = {15,27,6,9,3,5,9};
    bool cmp(int i,int j)
    {
        return i>j;
    }
    int main () {
      sort (a,a+7,cmp);
      for(int i=0;i<=6;i++)
        cout<<a[i]<<" ";
      return 0;
    }

     

    (xem thêm)

    (0 phản hồi)

  • Chương trình con

    admin - 03/10/2018

    #include <iostream>
    #include<math.h>
    using namespace std;
    long ucln(long m,long n)
    {    long r;
        while(n!=0){r=m%n;m=n;n=r;}
        return m;
    }
    long long bcnn(long m,long n)
    {
        return (1LL*m*n)/ucln(m,n);
    }
    void nguyento(long n)
    {
        bool ok=true;
        for(long i=2;i<=sqrt(n);i++)
        if(n%i==0) {ok=false;break;}
        if(ok==true) cout<<"Yes";
        else cout<<"No";
    }
    void hcn()
    {
        cout<<"******************"<<endl;
        cout<<"*                *"<<endl;
        cout<<"******************"<<endl;
    }
    void in(int a[],int &n)
    {
    ... (xem thêm)

    (0 phản hồi)

Back to Top